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

С++. Вопрос про возвращаемое значение из функции

Что значит возвращение значения по ссылке или через указатель, чем оно отличается от обычного? Если значение возврещеется как константа (как обычно или по ссылке или через указатель), значит ли это то, что это значеие нельзя будет потом изменить?
"Что значит возвращение значения по ссылке или через указатель, чем оно отличается от обычного? "
В этом случае при выполнении функции не создается копии параметра, передаваемого в функцию.
При передаче по ссылке работа с параметром производится по его указателю, т. е. в функцию передается адрес переменной.

"Если значение возвращается как константа (как обычно или по ссылке или через указатель) , значит ли это то, что это значеие нельзя будет потом изменить? "
Я так понимаю, константу можно передать, однако, константное значение нельзя менять.
AB
Antika B
884
Лучший ответ
int func(int *p, int &r)
{
*p = 0;
r = 0;
return 0;
}

int main()
{
int a, b, c;

a = func(&b, c);
// a - обычный
// b - через указатель
// c - по ссылке
}
Изменить можно и константу, только константа тогда назовётся переменной. И вообще, я не понял: у Вас мечта такая - константу поменять? По ссылке или через указатель означает, что не надо ещё что-нибудь определять. Просто указание на "куда посмотреть".
Ромашка =)
Ромашка =)
16 717
Ну можно в функцию отправить не само значение а указатель на переменную в которой хранится значение. . и вернуть можно тоже не само значение а его указатель. . очень удобно так работать с большими массивами. . а то передавать функции 300 кило массива и возвращать 300 кило совсем паршиво.... Ибо все параметры которые вы передаете складываются в стек.. . для каждой функции.. . вот так память и переполняется.
Denis Legeza
Denis Legeza
3 750
если по ссылке или указателю, то передается адрес, где значение лежит (4 байта при 32 битной адресации)
если как обычно, то передается само значение
Buzurg Hojiev
Buzurg Hojiev
2 566
а вы вообще о чём?!
` Klaus Womanizer
` Klaus Womanizer
277