一、静态变量初始化
首先,所有的静态变量都会被静态初始化。
然后,编译器如果能够根据信息计算出变量的初始化值(比如int a = 2;)那么将执行第二次初始化。
最后,如果没有足够信息,变量将被动态初始化。
例子:
int x;
y = 5;
long z = 13 * 13;
const double pi = 4.0 * atan(1.0);
首先,x、y、z、pi被零初始化。
然后,编译器根据信息计算出y、pi的值,进行第二次初始化。
最后,pi的信息不知道,需要等到程序执行再进行动态初始化。