#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的位址和其他完全不同,是放在不同的另一個區域。
這裡就說明了靜态變量是放置在全局區,不管是在全局聲明的,還是在函數裡聲明的。