全局变量验证?

时间:2013-12-22 16:26:17

标签: c++ iostream

我期待输出为10 但我得到11 根据我的知识调用有趣的功能,它应该采取 全局变量。 ??

#include <iostream>
using namespace first;
int var = 0;

void fun()
{
    cout << var;
}

int main()
{  
    var = 1;
    cout << var;
    fun();
}

5 个答案:

答案 0 :(得分:4)

您只需声明var一次。如果通过局部声明来遮蔽全局变量,则将使用局部变量。

例如,有关阴影如何工作的信息,请参阅this StackOverflow post

答案 1 :(得分:4)

int main()
{  
    int var=1;
    cout<<var;
    fun();
}

目前您只是在修改全局而不是在main()中创建一个新的。

然后你的输出将是

10

答案 2 :(得分:4)

您将'var'的值重新分配给1然后再打印'var'两次。这就是你输出11的原因。

答案 3 :(得分:2)

1分配给var后,您将打印相同变量的2倍 - 请注意,您没有创建2个不同的变量,但是您正在更改变量的值。

答案 4 :(得分:-1)

无功= 0 然后var = 1 打印var两次 输出11