Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 1
Регистрация: 31.07.2014
Сообщений: 84

C и C++ с чего начать и что общее?

28.10.2015, 00:03. Показов 1688. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет)
У меня такой дурацкий наверно вопрос:"C и C++ 2 абсолютно разных языка?И можно выучить c и без особых проблем перейти на c++?И вообще нужно ли учить C для того чтобы C++?
Заранее спасибо)
Объясняйте как полному нубу, если не сложно
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.10.2015, 00:03
Ответы с готовыми решениями:

Что посоветуете тому, кто хочет начать учить Java? С чего начать изучение?
Какие книги посоветуете по Java? Какие программы? Дело в том, что хочу начать учить разработку web-приложений, а с чего начать я даже...

Решил начать изучать 1С.С чего начать, что скачать?
Решил начать изучать 1С.С чего начать, что скачать?Какую среду, учебник, что для начала попробовать написать.мб у вас есть серия...

С чего начать и что использовать?
Добрый день . И сразу к к главному. Дали задание и его надо сделать с использованием Java и JavaScript. Задание: Главная...

36
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
28.10.2015, 00:17
Alex_Sava, Уффф! Там внизу - полдесятка аналогичных тем. Не пробовали ознакомиться? Но коль вопрос задан...
Цитата Сообщение от Alex_Sava Посмотреть сообщение
C и C++ 2 абсолютно разных языка?
Нет. Это языки очень родственные. Достаточто сказать, что Си является подмножеством Си++. Все, что вы напишите на Си, Плюс с удовольствием съест, не поперхнувшись.
Цитата Сообщение от Alex_Sava Посмотреть сообщение
И можно выучить c и без особых проблем перейти на c++?
Можно. Но без проблем не получится. Плюс значительно сложнее. Си - это букварь. "Мама мыла раму" А Плюс к этому относится как серьезный мужской разговор к детскому лепету.
Цитата Сообщение от Alex_Sava Посмотреть сообщение
нужно ли учить C для того чтобы C++?
ИМХО, необходимо! Иначе будешь себя чувствовать автомобилистом, не умеющим сделать 2 шага собственными ногами. Хотя, я тут встречал и иные мнения.
1
0 / 0 / 1
Регистрация: 31.07.2014
Сообщений: 84
28.10.2015, 00:21  [ТС]
Байт, Спасибо большое за столь полный и внятный ответ)Разложили все по полочкам
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
28.10.2015, 00:35
Цитата Сообщение от Байт Посмотреть сообщение
Все, что вы напишите на Си, Плюс с удовольствием съест, не поперхнувшись.
Так было до C99. С тех пор много воды утекло

Цитата Сообщение от Alex_Sava Посмотреть сообщение
И можно выучить c и без особых проблем перейти на c++
Можно.

Цитата Сообщение от Alex_Sava Посмотреть сообщение
И вообще нужно ли учить C для того чтобы C++?
Нужно не нужно вопрос субъективный,но C - хороший старт,может потом нужда в C++ вообще отпадет. Я, обычно, рекомендую именно так и поступать: т.е. начать с C,а потом перейти к C++.
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
28.10.2015, 00:48
Цитата Сообщение от Байт Посмотреть сообщение
Все, что вы напишите на Си, Плюс с удовольствием съест, не поперхнувшись.
неправда. есть отклонения. Есть достаточно отклонений, чтобы говорить, что их много.
C++
1
2
3
4
5
6
7
#include <stdio.h>
int i = 10;
 
int main(){
    printf("%d\n",i);
     if (i--)   main();
}
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
28.10.2015, 01:17
Цитата Сообщение от daslex Посмотреть сообщение
есть отклонения
Да. Спорить не буду. Вавилонская башня все еще не достроена.
И пришел, и смешал языки их. Так, кажется?
И сколько люди ни пытаются создать единый язык, а попытка K&R была одной из самых удачных, если не сказать - самой удачной из тех, что есть на памяти моей, а всегда найдется любитель лучшего из хорошего.

Добавлено через 16 минут
Цитата Сообщение от S_el Посмотреть сообщение
C - хороший старт,может потом нужда в C++ вообще отпадет.
Имхо, здесь смысловая опечатка. Если я правильно вас понял, конечно. Наверное, вы имели в виду, что "нужда в C вообще отпадет"? Вполне возможно. И скорее всего, это так.
Но мой опыт таков. Я начинал с машинных кодов. Даже без ассемблера. И знаю, что такое - Адрес. Указателем меня не испугать. И зная, как могут быть реализованы замысловатые конструкции, я ими пользуюсь с удовольствием. Однако, у этого дела есть и отрицательный момент. Если я не понимаю, как реализована конструкция, я ее - боюсь. "Во многом знании много печали", не так ли?
ЗЫ. Свой опыт никому рекомендовать не намерен.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
28.10.2015, 01:18
Цитата Сообщение от Байт Посмотреть сообщение
Можно. Но без проблем не получится. Плюс значительно сложнее. Си - это букварь. "Мама мыла раму" А Плюс к этому относится как серьезный мужской разговор к детскому лепету.
А ассемблер еще проще, лучше с него начинать. Как раз таки Си сложнее, ибо нужна ручная реализация каждого чиха. Иначе из всех щелей полезут утечки ресурсов, да переполнения буферов.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
28.10.2015, 01:30
Цитата Сообщение от Байт Посмотреть сообщение
Имхо, здесь смысловая опечатка. Если я правильно вас понял, конечно.
Нет,я написал именно то,что хотел написать. Можно изучить C и прийти к выводу,что C++ вообще не нужен. И следующим языком взять Python,Golang,Rust,...

Цитата Сообщение от Байт Посмотреть сообщение
Наверное, вы имели в виду, что "нужда в C вообще отпадет"?
И такое тоже возможно. Нас в универе учили программировать на C с классами(да, именно с этой ужасной смеси),хотя и говорили,что это C++. Затем я познакомился с C++ и он мне настолько понравился по сравнению с C,что некоторое время считал,что C уже устарел. Теперь я осознал насколько сложен C++,вижу огромное количество новичков,которые совершают одни и те-же ошибки,получил больше практики и считаю,что начинать надо именно с C.

Цитата Сообщение от Байт Посмотреть сообщение
Однако, у этого дела есть и отрицательный момент. Если я не понимаю, как реализована конструкция, я ее - боюсь. "Во многом знании много печали", не так ли?
В чем-то вы правы. Из всех известных мне нововведений в C++11 я испытываю трудности только со смартпойнтерами(хотя дело тут не в сложности реализации). Исключительно потому,что привык к C-шным, хотя и очень не люблю их использовать в коде.
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
28.10.2015, 02:14
Цитата Сообщение от Renji Посмотреть сообщение
А ассемблер еще проще, лучше с него начинать.
Проще начинать с себя. Как Акын. Что вижу - о том и пою.
Цитата Сообщение от S_el Посмотреть сообщение
я написал именно то,что хотел написать.
Прошу прощения. Мысль не тривиальная, тем более симпатичная.
Цитата Сообщение от S_el Посмотреть сообщение
насколько сложен C++
Да. Ничего не попишешь. Ибо первоначальный Си концептуально проще паренной репы. Это был замечательный прорыв именно концептуальной простотой. Товарищу Окаме со своей бритвой там просто нечего делать.

Добавлено через 3 минуты

Не по теме:

Цитата Сообщение от Alex_Sava Посмотреть сообщение
У меня такой дурацкий наверно вопрос
И такую бучу подняли... Но ничего, народ высказывается, за грудки пока никто никого не хватает. Да и разговор интересный.

0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
28.10.2015, 02:26

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
И такую бучу подняли... Но ничего, народ высказывается, за грудки пока никто никого не хватает. Да и разговор интересный.
Да,надеюсь другие форумчане тоже опытом поделятся :)



Цитата Сообщение от Байт Посмотреть сообщение
Ибо первоначальный Си концептуально проще паренной репы. Это был замечательный прорыв именно концептуальной простотой.
Да. Интересно следить за развитием С, как он будет меняться со временем.
Вот о новых стандартах C++ знают почти все, а о новых возможностях C99 и C11 - единицы.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
28.10.2015, 02:35
Цитата Сообщение от Байт Посмотреть сообщение
Да. Ничего не попишешь. Ибо первоначальный Си концептуально проще паренной репы.
Да, да, сама простота и очевидность.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
void test(){}
struct some_struct{};
int main()
{
    char test1[]="test";
    char test2[]="test";
    if(test1==test2)
        printf("Строки равны");
    else
        printf("Строки неравны... Или здесь какие-то грабли");
    some_struct my_struct;
    //Один Аллах ведает зачем здесь struct, но без него не заведется
    struct some_struct*pointer=&my_struct;
    test("Кто сказал что у test ноль аргументов? Эта строчка отлично компилируется!");
    return 0;
}
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
28.10.2015, 02:49
Renji, здесь как раз просто.
Вы не указали компилятору проверить количество аргументов,поставьте void
и компилятор не пропустит:
C++
1
void test(void){}
А наличие struct - требование языка. Вас ведь не удивляет что нужно явно тип указывать?

Добавлено через 3 минуты
По поводу 8 строки имя массива - указатель на начало,т.е. сравниваются указатели,а не сами строки.
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
28.10.2015, 02:53
Не понял про строки - тоже никаких граблей не наблюдаю. В С++ кстати, такое же поведение, если на нормальных массивах и строках, а не на STL-ных стрингах. Про сначала ассемблер, потом С а потом Питон/Го/Раст и т.п. тоже согласен.

Да и теме с самого начала пора в холивар, как и всем предыдущим с подобным содержанием...
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
28.10.2015, 03:44
Цитата Сообщение от S_el Посмотреть сообщение
Renji, здесь как раз просто.
Вы не указали компилятору проверить количество аргументов,поставьте void
и компилятор не пропустит:
Если я не должен писать void test(int x,void), почему я должен писать void test(void)?
Здесь все действительно просто. Конструкция которую я использовал является deprecated. Ее ввели из-за каких-то там технических ограничений древних и примитивных компиляторов. А сохранили лишь для совместимости с древним как говно мамонта кодом. Простота языка здесь учитывалась в последнюю очередь.
Цитата Сообщение от S_el Посмотреть сообщение
А наличие struct - требование языка. Вас ведь не удивляет что нужно явно тип указывать?
Требование указывать тип обосновано статической типизацией. Требование подписывать везде struct не обосновано ничем. Ну, кроме все той же совместимости с тридцатилетним кодом, написанным под древний компилятор, название которого уже никто и не вспомнит.
Цитата Сообщение от _Ivana Посмотреть сообщение
Не понял про строки - тоже никаких граблей не наблюдаю. В С++ кстати, такое же поведение, если на нормальных массивах и строках, а не на STL-ных стрингах.
Грабли предельно просты. int_x==int_y сравнивает значения числовых переменных. string_a==string_b сравнивает значения строковых переменных. И только у "нормальных" сишных строк c_str1==c_str2 сравнивает адреса переменных. Логичность из всех щелей. Да, я прекрасно понимаю чем обосновано такое поведение. Но простым и логичным оно от этого не становится, это именно грабли.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
28.10.2015, 04:43
Цитата Сообщение от Alex_Sava Посмотреть сообщение
Объясняйте как полному нубу, если не сложно
С++ это С с набором дополнительных инструментов. А именно в С++ добавились
- классы
- перегрузка функций и операторов
- шаблоны

Добавлено через 10 минут
Цитата Сообщение от Renji Посмотреть сообщение
Ну, кроме все той же совместимости с тридцатилетним кодом, написанным под древний компилятор, название которого уже никто и не вспомнит.
Копайте глубже. Компиляторы 30 летней давности к примеру Turbo C++ 1987 года выпуска этого уже не требовали. Мало того этого не требовал и древний уже по меркам 90-ых компилятор чистого C для ЕС ЭВМ (ну это тот который с ключевыми словами на русском)
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
28.10.2015, 09:42
Цитата Сообщение от Alex_Sava Посмотреть сообщение
"C и C++ 2 абсолютно разных языка?
да.
несмотря на то, что полюсы традиционно сохраняют некоторую совместимость с языком си.
Цитата Сообщение от Alex_Sava Посмотреть сообщение
И можно выучить c и без особых проблем перейти на c++?
с одной стороны, зная сишку проще понять природу явлений на плюсах.

однако, махровые сишники испытывают сложности:
концепция классов, ооп, шаблоны - все это воспринимается как нечто
плохо подающиеся контролю, и не понятно зачем нужное.
например.

Добавлено через 3 минуты
Цитата Сообщение от S_el Посмотреть сообщение
Исключительно потому,что привык к C-шным
сишные смартпоинтеры??????

Добавлено через 5 минут
Цитата Сообщение от Renji Посмотреть сообщение
Но простым и логичным оно от этого не становится, это именно грабли.
напротив.
взгляните ещё раз внимательнее:

C++
1
2
3
4
5
6
    char test1[]="test";   //<--- программист объявил указатели
    char test2[]="test";
    if(test1==test2)   // <--- программист сравнил указатели
        printf("Строки равны");   //<--- грабелька в этой строке
    else
        printf("Строки неравны... Или здесь какие-то грабли");
сначала явным образом объявить указатели.
потом явным образом сравнить указатели.
и при этом подразумевать вовсе не указатели,
вот здесь имеет место быть нарушению логики,
по причине утери здравого смысла
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
28.10.2015, 09:48
Цитата Сообщение от hoggy Посмотреть сообщение
сишные смартпоинтеры??
плюсовые,читайте внимательнее.
0
 Аватар для SmittWesson
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
28.10.2015, 09:50
Цитата Сообщение от Alex_Sava Посмотреть сообщение
У меня такой дурацкий наверно вопрос:
Да. действительно, вопрос дурацкий. С++, это производная классическоко Си. Просто в его стандарт, добавлены некоторые библиотеки, облегчающие нашу, и без того тяжелую жизнь. Си#, попытка придать Си - сетевые возможности. На мой взгляд, попытка не удачная. Редко провайдеры соглашаются ставить экзешники на сайты. Агава, так вообще открещивается.Ну, если только собственный сервак завести... а ОНО ВАМ НАДО?
Я это к чему. Учите С++. Хуже чем есть, всё равно не станет
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
28.10.2015, 09:51
Цитата Сообщение от S_el Посмотреть сообщение
плюсовые,читайте внимательнее.
прочитал.

Цитата Сообщение от S_el Посмотреть сообщение
Из всех известных мне нововведений в C++11 я испытываю трудности только со смартпойнтерами(хотя дело тут не в сложности реализации). Исключительно потому,что привык к C-шным, хотя и очень не люблю их использовать в коде.

у вас сложности с приплюснутыми смартами, исключительно потому, что вы привыкли к C-шным.

сишные смарты?????????
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
28.10.2015, 10:12
Цитата Сообщение от hoggy Посмотреть сообщение
у вас сложности с приплюснутыми смартами, исключительно потому, что вы привыкли к C-шным.
Да. До C++11 в C++ не было смартпойнтеров(на русском интеллектуальные указатели). Они появились,чтобы избавить программистов от многих ошибок связанных с обычными указателями.
Но я привык к обычным [С-шным][указателям] и мне сложно переключиться на новые.т.к. они сложнее а преимущество не всегда очевидно.
Надеюсь,теперь доступно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.10.2015, 10:12
Помогаю со студенческими работами здесь

С чего начать? Что посоветуете
Здравствуйте... с чего начать изучение. что посоветуете? за какие коды браться в начале обучения?

С чего начать и на что менять
Добра, форумчане. Помощб нужна да поддержка дружеская. Имею следующую конфигурацию : abb68e33.png Хочу поэтапно довести до...

Что выбрать C# или C++? С чего начать?
Привет всем! Очень хочу научиться программированию но не знаю с чего начать, какой язык выбрать? Паскаль учил в универе, теперь подучил...

Что улучшить? С чего начать улучшать?
Материнская плата: Foxconn 2ada Видеокарта: AMD Radeon 7500 Процессор: Intel Core i5 3350P @ 3.1 Ггц ОЗУ: 6 ГБ БП: DPS-300AB-72 A ...

Искусственный интеллект. Что, как и с чего начать?
Здравствуйте. Абсолютно случайно прочитал про ИИ, и меня это заинтересовало. Ведь всегда интересно как создавать ассистенты, а в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru