Другие языки программирования и технологии
С++. Вопрос про возвращаемое значение из функции
Что значит возвращение значения по ссылке или через указатель, чем оно отличается от обычного? Если значение возврещеется как константа (как обычно или по ссылке или через указатель), значит ли это то, что это значеие нельзя будет потом изменить?
"Что значит возвращение значения по ссылке или через указатель, чем оно отличается от обычного? "
В этом случае при выполнении функции не создается копии параметра, передаваемого в функцию.
При передаче по ссылке работа с параметром производится по его указателю, т. е. в функцию передается адрес переменной.
"Если значение возвращается как константа (как обычно или по ссылке или через указатель) , значит ли это то, что это значеие нельзя будет потом изменить? "
Я так понимаю, константу можно передать, однако, константное значение нельзя менять.
В этом случае при выполнении функции не создается копии параметра, передаваемого в функцию.
При передаче по ссылке работа с параметром производится по его указателю, т. е. в функцию передается адрес переменной.
"Если значение возвращается как константа (как обычно или по ссылке или через указатель) , значит ли это то, что это значеие нельзя будет потом изменить? "
Я так понимаю, константу можно передать, однако, константное значение нельзя менять.
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 - по ссылке
}
{
*p = 0;
r = 0;
return 0;
}
int main()
{
int a, b, c;
a = func(&b, c);
// a - обычный
// b - через указатель
// c - по ссылке
}
Изменить можно и константу, только константа тогда назовётся переменной. И вообще, я не понял: у Вас мечта такая - константу поменять? По ссылке или через указатель означает, что не надо ещё что-нибудь определять. Просто указание на "куда посмотреть".
Ну можно в функцию отправить не само значение а указатель на переменную в которой хранится значение. . и вернуть можно тоже не само значение а его указатель. . очень удобно так работать с большими массивами. . а то передавать функции 300 кило массива и возвращать 300 кило совсем паршиво.... Ибо все параметры которые вы передаете складываются в стек.. . для каждой функции.. . вот так память и переполняется.
если по ссылке или указателю, то передается адрес, где значение лежит (4 байта при 32 битной адресации)
если как обычно, то передается само значение
если как обычно, то передается само значение
а вы вообще о чём?!
Похожие вопросы
- Вопрос про возвращаемое значение из функции в С++.
- Помогите с Си. Вопрос по заданию (насчет типизированной функции, которая должна возвращать массив)
- В чем разница между функциями, которые возвращают значения и которые не возвращают? Не вникаю в смысл слова "возвращает"
- Что значит "функция возвращает значение" в С++?
- как в с++ возвращать значение функции больше одного? допустим сразу несколько значений
- Что значит возвращает значение функции? для чего нужен оператор return в си? как он работает?
- что значит в программировании функция, которая возвращает значение.
- Вопрос насчет объявления и параметра функции в C++
- Что значит "возвращать значение" в языках программирования?
- С++.Составить программу для определения таблицы значений функции у в произвольном диапазоне [a, b