Другие языки программирования и технологии

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

назначение оператора return . что он делает!! ! только не надо писать : оператор return возвращает исходное значение в функцию. как понять слово "возвращает" и главное куда .Просто писать return х в конце программы или функции для меня не катит! я должен понимать, что делаю! Приведите, ПОЖАЛУЙСТА примеры (желательно тупые-тупые) ,где из за отсутствия этого оператора происходит глобальная лажа.
и если в программе переменные х, у, то надо "возвращать" им обоим значение, или только той переменной, что вывожу?
Kostadin K
Kostadin K
638
return возвращает результат проделанной работы в функции. Напримере, в функции получили результат сложения двух чисел. Как получить информацию? Как получить сумму из функции? С помощью return.
============
Т. е. return возвращает (т. е. передаёт) информацию из функции. И завершает её.
Функция не просто возвращает, а возвращает результат своей работы:
int sum(int a, int b){ return a+b;};
Alex Konoplev
Alex Konoplev
5 430
Лучший ответ
Функция (по определению) возвращает только одно значение. Соответствующее типу функции. Надо больше - или возвращать массив, или делать передачу параметров по ссылке.
А return закачивает выполнение функции и возвращается в её точку вызова. Если при вызове написано x = Func(...), то иксу присвоится то, что стоит после return в функции Func.

Что тут может быть неясного?!
Димон Покимон
Димон Покимон
59 134
int fn_add(int a,int b)
{
return a+b;
}
V Abdildaev
V Abdildaev
54 409
функция это подпрограмма, которая берет какие то данные и возвращает данные. return как раз оператор возврата, при чем возвращать можно не только числа, например:

set<pair<int,set<int> > > func(int a)
{
set<pair<int,set<int> > > res;
set<int> 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);

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

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

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

int GetThree ()
{
return 3;
}

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