【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++面对对象情况下

静态成员变量和静态成员函数都是在程序一开始就加载到内存中的,所以静态方法只能访问静态成员变量以及它的参数,但非静态方法是可以访问静态成员的

posted on 2022-09-21 17:18  甲鱼写代码  阅读(25)  评论(0)    收藏  举报

导航