C语言中的静态局部变量

代码:

 1 0x601070 0x7ffcf44243fc
 2 0x60106c
 3 1
 4 0x60106c
 5 2
 6 0x60106c
 7 3
 8 [hu@localhost test]$ cat test.cpp 
 9 #include <iostream> 
10 #include <string>
11 #include <cstdio>
12 
13 using namespace std; 
14 
15 void func(){
16     static int a = 1;
17     cout<<&a<<endl;
18     cout<<a<<endl;
19     a++;
20 }
21 
22 int main(){
23     static int a = 1;
24     int b = 1;
25     cout<<&a<<" "<<&b<<endl;
26     func();
27     func();
28     func();
29 
30     return 0;
31 }

输出:

0x601070 0x7ffcf44243fc
0x60106c
1
0x60106c
2
0x60106c
3

 说明:

静态局部变量存储在全局区,全局变量、静态局部变量、静态全局变量都在静态存储区分配空间。

posted @ 2016-05-09 23:32  hu983  阅读(337)  评论(0编辑  收藏  举报