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

#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;
}

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

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

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

C++中的静态变量地址探讨,布布扣,bubuko.com

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

上一篇:python 网站自动抠图


下一篇:Spring中的IOC实现