Кр
Кристина

программирование, язык си

назначение оператора return . что он делает!! ! только не надо писать : оператор return возвращает исходное значение в функцию. как понять слово "возвращает" и главное куда .Просто писать return х в конце программы или функции для меня не катит! я должен понимать, что делаю! Приведите, ПОЖАЛУЙСТА примеры (желательно тупые-тупые) ,где из за отсутствия этого оператора происходит глобальная лажа.
и если в программе переменные х, у, то надо "возвращать" им обоим значение, или только той переменной, что вывожу?

Гульнура
Гульнура

return возвращает результат проделанной работы в функции. Напримере, в функции получили результат сложения двух чисел. Как получить информацию? Как получить сумму из функции? С помощью return.
============
Т. е. return возвращает (т. е. передаёт) информацию из функции. И завершает её.
Функция не просто возвращает, а возвращает результат своей работы:
int sum(int a, int b){ return a+b;};

Юлия Козлова
Юлия Козлова

Грубо говоря, позволяет использовать функцию как значение.
Например:

int GetThree ()
{
return 3;
}

int MyVariable = GetThree (); // Аналогично "MyVariable = 3"

Анастасия
Анастасия

т. е. если ты будешь присваивать выполнение функции переменной, то в переменной будет хранится значение переданное return.
Например есть функция:
char getChar(){
return 'c';
}
int main(void){
char returnValue=getChar(); //в переменной будет содержаться символ "c"
printf("%c",returnValue);
system("pause");
return 0;
}

Л1
Любитель 1

Функция (по определению) возвращает только одно значение. Соответствующее типу функции. Надо больше - или возвращать массив, или делать передачу параметров по ссылке.
А return закачивает выполнение функции и возвращается в её точку вызова. Если при вызове написано x = Func(...), то иксу присвоится то, что стоит после return в функции Func.

Что тут может быть неясного?!

АЧ
Алексей Чубыкин

функция это подпрограмма, которая берет какие то данные и возвращает данные. return как раз оператор возврата, при чем возвращать можно не только числа, например:

set > > func(int a)
{
set > > res;
set q;
q.insert(a);
res.insert(make_pair(a,q));
return res;
}

Вот например лажа, но компилятор не выдает ошибку:
void* p(double x)
{
double* a;
*a = x;
return a;
}

И если в программе написать

double* c = (double*)p(6.0);

то получится полный бред.

АМ
Андрей Мартынюк

int fn_add(int a,int b)
{
return a+b;
}

Johnny
Johnny

Глобальная лажа случится, если вы пишите функцию не void типа и не пишете return. Еще лажа может случится если вы объявляете результат функции одного типа, а возвращаете другого.
Это ловится компилятором.

Самая глобальная лажа случается, если начинаете играться с void* и приведением типов, не понимая что и зачем. Это ловится пользователями

А про return уже объяснили

Похожие вопросы
Программирование на Си
где скачать язык программирования Си?
ПОМОГИТЕ С ПРОГРАММИРОВАНИЕМ. язык Си
Программирование на языке Си
Вопрос по языку программирования Турбо Си
В чем ошибка? Язык программирования Си.
Язык программирования Си
язык программирования си обычный.
Решить на языке программирования СИ
Программирование. Язык си