C++中的静态变量地址探讨

来源:互联网 发布:手机道路测量软件 编辑:程序博客网 时间:2024/05/16 01:57
#include"stdio.h"//全局静态变量static int a;void say(){//静态变量static int b;printf("b %p\n",&b);//栈临时变量int c;printf("c %p\n",&c);}int main(){printf("a %p\n",&a);say();return 0;}

如图我们可以看到,变量a和变量b的地址是相邻的,也就是说,这两个变量是放在内存的同一片地址中,而变量c的地址和其他完全不同,是放在不同的另一个区域。

这里就说明了静态变量是放置在全局区,不管是在全局声明的,还是在函数里声明的。

0 0
原创粉丝点击