Я ожидаю, что выход будет 10 Но я получаю 11 по моим знаниям, вызывая функцию fun, он должен принимать глобальную переменную. ??
#include <iostream>
using namespace first;
int var = 0;
void fun()
{
cout << var;
}
int main()
{
var = 1;
cout << var;
fun();
}
Вы переназначаете значение "var" равным 1, а затем дважды печатаете "var". поэтому вы получаете 11 в качестве вывода.
var
внутри main()
является глобальной переменной.
Вы только объявляете var
один раз. Если вы затеняете глобальную переменную локальным объявлением, будет использоваться локальная переменная.
Например, см. qaru.site/questions/212579/... для получения информации о том, как работает затенение.
int main()
{
int var=1;
cout<<var;
fun();
}
На данный момент вы просто изменяете глобальный, а не создаете новую область с main()
.
Тогда ваш выход будет
10
После назначения 1
в var
вы печатаете 2 раза одну и ту же переменную - обратите внимание, что вы не создаете 2 разных переменных, но вы меняете значение своей переменной.
Var = 0 Затем var = 1 Печать var два раза Выход 11
10
?