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 }