变量在栈中实际物理位置

1、存储在栈中的变量的物理位置是从大到小分配内存的,即先分配的变量物理地址比后分配变量的物理地址高。
2、变量名解析后是变量的地址。不是说程序将静态变量的变量名放入栈中,而实际将值存储在常量区。
例:

/////////////////////////////////////////////////////////////////////////////////////////////////////
#include <stdio.h>

void main()
{
int a=2;
char c='a';
static int s=4;

printf("%d %d %d ",&a,&c,&s);
}
结果:
2034619708 2034619707 6293668
说明:
因为先申请的a变量,故先将a变量放入栈底,a变量占的地址是从2034619708到2034619712,再接着放入c变量,b变量占的地址是从2034619707到2034619708。最后将s变量放入堆中。

/////////////////////////////////////////////////////////////////////////////////////////////////////

原文地址:https://www.cnblogs.com/Mr-Wenyan/p/7258537.html