原则上,定义在任何函数之外的变量(即全局变量、命名空间变量和类静态变量)会在调用 main() 之前初始化。翻译单元中的此类非局部变量按其声明顺序初始化
以上是我的讲师课堂笔记中的台词。
#include <iostream>
using namespace std;
int a=99;
int b;
int main(int argc, char *argv[])
{
cout<<a<<endl;
cout<<b<<endl;
return 0;
}
b=100;
运行此程序时出现错误。在调用 main() 之前将 'b' 分配给 100 不是真的吗?错误是C++ requires a type specifier for all declarations