Проходим в универе программирование и есть один вопрос у профи, спросить у преподавателя нет возможности.
Просмотрите код и подскажите: в функции Foo мы возвращаем значение а, как локальную переменную и в основной функции значение не поменяется на 15, а останется 5. Если в параметры Foo дописать амперсанд после типа данных, адрес памяти поменяется на адрес а из основной функции. Я правильно понял, что дописав амперсанд, функция ссылается на переменную из основной функции? Заранее извиняюсь, если непонятный код или предложение =(
#include <iostream>
void Foo(double a) {
std::cout << &a << std::endl;
std::cout << a << std::endl;
a = 15.0;
std::cout << a << std::endl;
}
int main()
{
setlocale(LC_ALL, "rus");
double a = 5.0;
std::cout << &a << std::endl;
std::cout << a << std::endl;
std::cout << std::endl;
Foo(a);
std::cout << std::endl;
std::cout << a << std::endl;
system("pause");
return 0;
}