1、存储在栈中的变量的物理位置是从大到小分配内存的,即先分配的变量物理地址比后分配变量的物理地址高。
2、变量名解析后是变量的地址。不是说程序将静态变量的变量名放入栈中,而实际将值存储在常量区。
例:
/////////////////////////////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
void main()
{
int a=2;
char c=‘a‘;
static int s=4;
printf("%d %d %d\n",&a,&c,&s);
}
结果:
2034619708 2034619707 6293668
说明:
因为先申请的a变量,故先将a变量放入栈底,a变量占的地址是从2034619708到2034619712,再接着放入c变量,b变量占的地址是从2034619707到2034619708。最后将s变量放入堆中。
/////////////////////////////////////////////////////////////////////////////////////////////////////
时间: 2024-11-05 14:40:59