static为静态变量,其数据存储在静态存储区,也叫全局数据区。很多文章上都把他分为“面向过程的static”和“面向函数的static”来进行讲解。我们这里仅仅从“面向过程的static”也就是静态全局变量和静态局部变量方面来进行阐述。

   1、 未被初始化的静态变量自动初始化为0

int main()
{
    static int num;
    cout<<num<<endl;
    return 0;
}

  2、静态存储区的数据不会因为函数退出而释放空间

 1 #include<iostream>
 2 
 3 using namespace std;
 4 
 5 static int sta_num = 9;
 6 void plu(int);
 7 
 8 int main()
 9 {
10     int int_num = 9;
11 
12     plu(int_num);
13 
14     cout<<"sta_num = "<<sta_num<<endl;
15     cout<<"int_num = "<<int_num<<endl;
16 
17     return 0;
18 }
19 
20 void plu(int y)
21 {
22     for(int num = 0;num<3;num++)
23     {
24         sta_num += 1;
25         y += 1;
26     }        
27 }
全局

相关文章: