我期待的輸出是10 但我得到11 根據我的知識,同時調用fun函數,它應該採取 全局變量。 ??全局變量驗證?
#include <iostream>
using namespace first;
int var = 0;
void fun()
{
cout << var;
}
int main()
{
var = 1;
cout << var;
fun();
}
我期待的輸出是10 但我得到11 根據我的知識,同時調用fun函數,它應該採取 全局變量。 ??全局變量驗證?
#include <iostream>
using namespace first;
int var = 0;
void fun()
{
cout << var;
}
int main()
{
var = 1;
cout << var;
fun();
}
你「變種」的值重新分配到1,然後打印「變種」兩次。這就是爲什麼你得到11作爲輸出。
main()裏面的var怎麼能更新全局變量? – user3127386
@ user3127386 main()裏面的'var' * *是全局變量。 – juanchopanza
@juanchopanza所以你的意思是我們可以從任何類型的局部範圍更新全局變量? – user3127386
您只聲明var
一次。如果通過局部聲明來映射全局變量,將使用局部變量。
例如,有關陰影如何工作的信息,請參閱this StackOverflow post。
int main()
{
int var=1;
cout<<var;
fun();
}
目前,您只是修改全局,而不是創建一個新的範圍在main()
作用域。
然後你的輸出就會
10
將1
分配到var
後,您打印2次相同的變量 - 請注意,您並未創建2個不同的變量,但您要更改變量的值。
我不確定我是否正確地發佈了你的帖子,但他沒有聲明另一個變種,只是改變全局變量的值。在上面的具體情況中,由於使用了具體的值,他不會看到11。 –
是的,我沒有看到var = 1之前沒有int int – enedil
瓦爾= 0 然後VAR = 1個 打印變種兩次 輸出11
我認爲這不是一個評論而不是一個答案,但是可以添加更多信息以使其成爲答案。 –
你爲什麼想到'10'? –
是的,它使用您修改的全局變量。 – chris
爲什麼我不能得到10? – user3127386