строка 9 = 3
строка 10 = 8 - это выходы.
В строке 9 просто печатается значение глобальной переменной x .
В строке 10 просто передаём значение x
в f_name (iny y). Что означает значение y
в этой области действия: 3 . Добавление этого к локальной переменной x
дает 8 , которую возвращает функция.
Я думаю, у вас проблемы с пониманием объема переменных. Чтобы понять это, с точки зрения этой программы, есть два вида переменных -
- Локальные переменные
- Глобальные переменные
Локальные переменные - это переменные, которые имеют локальную область видимости и доступны только в тех функциях, в которых они объявлены.
Глобальные переменные - это переменные, срок жизни которых начинается в начале программы и заканчивается только после ее завершения. Глобальные переменные в области видимости файла доступны в любом месте с помощью модуля перевода.
int main()
{
cout << x; // x here is the global variable. Because, in main, there is no variable
// called x declared. So it prints 3
cout << f_name(x); // Here you are passing the value of global variable x, which is 3
return 0;
}
int f_name(int y) // The passed value ( i.e., 3 ) is copied to y.
{
int x = 5;
return (x + y); // Here you are not accessing global variable x. Because, there
// is a local variable declared called x and initialize with value 5
// Now (5+3) = 8, which is returned.
}