Static 静态变量
一、什么是静态变量?
1.静态变量的静态指在整个程序生命周期的地址静止不变。也就是说在整个程序里面只保存有一份拷贝。static关键字允许它在不同的函数调用间保持它的值。如果一个静态变量被访问后值改变,它就会保持新的值。
2.静态变量可以不赋初值。
二、全局变量和静态变量的区别
同:全局变量和静态变量都存储在静态变量存储区。
异:作用域不同,全局变量作用域从变量定义开始到程序结束。静态变量作用域只在当前文件有效,其他文件不可调用。
三、使用静态变量要注意
静态成员属于整个类,而不属于某个对象,如果在类内初始化,会导致每个对象都包含该静态成员。
C++中,const的静态成员可以直接在类内初始化,而非const的静态成员需要在类外声明初始化。
补充:const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。const不能用于静态函数。
即:静态成员和常量成员都不能在类内初始化。能在类中初始化的成员只有一种,那就是静态常量成员。