C/C++

Я так и не понял, что означает return и почему надо ставить именно 0, а не любое другое значение. Ещё кое-что о функции.

Я не так давно изучаю C++, но никогда в то же время не обращал внимания на return. Я часто замечал, что вместо привычного мне нуля после return ставится функция. Для чего это? И что означает «функция возвращает результат» и чем отличаются void от main? Столько вопросов, но это основные для меня.

Кроме интернета, где не всегда понятно и иногда вопросов становится ещё больше, я больше не могу ни к кому обратиться,
Функция в С++, в качестве возвращаемого значения, может возвращать типизированное значение, указатель на тип или типизированную ссылку, а может ничего не возвращать.
СО
Сергей Озеров
58 482
Лучший ответ
return 0 может быть тебе привычен только в функции main, он дает знать операционной системе, что программа завершилась без ошибок, и то он там необязателен, при его отсутствии соответствующий код будет дописан компилятором автоматически.
А остальные, да и этот, вопросы - самое начало любого учебника по C++, не вижу смысла его сюда копировать.
Андрей Потапов Начало любого учебника говоришь? Рекомендую взять Васильева А. Н «Программирование C++ на примерах и задачах». Ты хоть уже и профи, но сам вряд ли поймёшь будучи новичком, автор для меня плохо объясняет эти вещи
Евгений Тютюнник Посмотрел эту книжку. Она явно не для начинающих изучать программирование. Это скорее прокомментированный сборник задач с решениями, причем хотя и для начинающих изучать С++, но уже знающих какой-либо другой язык. Автор с самого начала считает, что такие понятия, как идентификатор, тип переменной, блок, оператор и т. п. уже известны.
Вообще же C++ -это сильно (раз в двадцать) расширенный C, поэтому я бы посоветовал сначала изучить С, а потом уже переходить к C++. Недаром автор С++ писал, что С++ не должен быть первым языком при изучении программирования. Это язык профессионалов, рассчитанный на профессионалов, сделанный по принципу "два пишем, три в уме" ;)
А если и чистый С покажется слишком сложным, надо спуститься еще на одну ступеньку и начинать с Паскаля :)
Евгений Тютюнник Сначала построю дом. Потом разберусь с его фундаментом ;)
C++ разработан, что бы ни говорил его автор Страуструп, как расширение С. И примитивные средства С продублированы в нем более мощными новыми, но и старые остались, так что разбираться с этим дублированием весьма запутанное дело.
"Потом" с С будет уже незачем разбираться, так как С фактически начальная часть C++. А вот наоборот - после изучения С ты уже будешь знать начало С++.
Евгений Тютюнник И еще раз - Васильев совершенно непригоден для изучения C++. Это не учебник, а скорее дополнение к нему с разбором примеров. К сожалению, с чего лучше начинать, подсказать не берусь - далек от преподавания С и C++. Но на "Ответах" есть куча советов и рекомендаций.
В современных языках ошибки обрабатываются исключениями в try catch. В С еще не было исключений и все функции возвращали значение или код ошибки. 0 чаще всего означает что ошибки нет.
Андрей Булай
Андрей Булай
83 330
В математике есть функция синус. Она возвращает значение синуса. В программировании тот же смысл. Если есть функция sin, её можно вызывать так:
y = sin(x)
В результате переменной "y" будет присвоен синус числа, хранящегося в переменной "x". Если функция ничего не возвращает (void), так писать нельзя.

Интересно, каким способом надо "изучать" C++, чтоб не обращать внимания на return и не знать эту базовую тему?
Aybek Ibragim Uulu
Aybek Ibragim Uulu
58 065
Андрей Потапов Если честно, я обращал на это внимание, но меня тогда не интересовала его предназначенность. Весь прикол в том, что даже вводя return 7 компилятор не выдаёт никакой ошибки, что довольно удивительно для меня.
изучай джаву или шарп. проще и быстрее
Любая функция в си плюс плюс должна возвращать в caller (функцию, которая ее вызвала, чаще всего это main) какое-то значение. Если фукция вида void, она не возвращает ничего (имеет смысл делать такие функции когда эта функция например только выводит что-нибудь на экран). В остальных случаях функция либо возвращает результат своей работы (ты вызвал функцию и передал ей два параметра, она их сложила и вернула результат)