【C/C++】static
C/C++共有
static修饰局部变量(比如函数中的局部变量),此时这个变量的位置就在全局静态区,但仍旧只能在函数内部访问,比如
1 #include <iostream> 2 using namespace std; 3 4 void test(){ 5 static int a=0; 6 a++; 7 cout <<a<< endl; 8 } 9 10 int main() 11 { 12 13 test(); 14 //cout<<a;//会报错,不行,只能在test里访问 15 test(); 16 17 return 0; 18 }
作用域:作用域不变,只是出作用域不被销毁
生命周期:生命周期变长,程序结束生命周期才结束
static修饰全局变量,
作用域: 作用域变小,仅仅局限在当前文件下
生命周期:生命周期没变,因为全局变量任然存储在静态区上。
static修饰函数
作用域:作用域变小,仅仅局限于当前文件下
C++面对对象情况下
静态成员变量和静态成员函数都是在程序一开始就加载到内存中的,所以静态方法只能访问静态成员变量以及它的参数,但非静态方法是可以访问静态成员的
浙公网安备 33010602011771号