static int count;
int main()
{
static int count;
}
在任何函数内外声明的静态变量之间是否有任何区别?
(我的意思是变量计数的范围和可见性)
答案 0 :(得分:16)
您的第一个count
只能在模块中访问(该文件中的代码)。您的第二个count
只能在main
内访问。
答案 1 :(得分:3)
当您在方法之外声明时,所有静态方法函数在其声明之后写入。虽然只能通过方法来访问方法中声明静态变量。
答案 2 :(得分:3)
全局变量的动态初始化也有所不同(参见here)。总结一下,如果你有:
static int count = bar();
int main ()
{
static int count = foo ();
}
执行main时会调用'foo',但标准(C ++ '03)根本不需要调用'bar'!