全局变量、文件域中的静态变量、类中的成员静态变量在main函数执行前初始化;局部变量中的静态变量在第一次调用时初始化。
C和C++的区别:局部静态变量:
在C语言中是编译期初始化并分配内存,故不能用变量给静态局部变量赋值,只能用常量。
在C++中是第一次执行时初始化,因为C++引入了对象的概念,对象一般需要构造函数,无法简单的分配内存,故可以用变量赋值,并且在第一次使用时初始化。
C++中是动态初始化(运行期)(main函数前,局部静态变量除外)
 全局变量、文件域中的静态变量、类中的成员静态变量在main函数执行前初始化;局部变量中的静态变量在第一次调用时初始化。
C和C++的区别:局部静态变量:
在C语言中是编译期初始化并分配内存,故不能用变量给静态局部变量赋值,只能用常量。
在C++中是第一次执行时初始化,因为C++引入了对象的概念,对象一般需要构造函数,无法简单的分配内存,故可以用变量赋值,并且在第一次使用时初始化。
C++中是动态初始化(运行期)(main函数前,局部静态变量除外)
 
C++ 类的const static成员运行时初始化:等您坐沙发呢!