全局静态变量和全局变量的区别:全局静态变量的作用域仅仅在本文件中
C语言中的局部静态变量:在编译的时候就分配了内存,在main函数执行前进行初始化
C++语言中的局部静态变量:在编译的时候分配内存,在第一次使用的时候进行初始化。保证线程安全,即可以用在线程安全的单例模式中。
C++语言中的静态成员变量:在编译的时候分配内存,在main函数执行前进行初始化。
所以C语言中不能用变量对静态局部变量初始化,因为在main函数执行前是不知道变量的值的,没法对静态局部变量初始化;而C++语言中,可以用变量对静态局部变量进行初始化,因为第一次使用到这个局部静态变量的时候就可以知道变量的值了。