读书人

关于c中局部变量的分配有关问题

发布时间: 2012-03-16 16:34:56 作者: rapoo

关于c中局部变量的分配问题
程序如下:
#include "stdio.h"
int main () {
int index = 10,i;
for (i = 0;i < index;i++) {
int j = 3;
printf("%o\n",&j);
}
}
程序的输出的结果是:
4577564
4577564
4577564
4577564
4577564
4577564
4577564
4577564
4577564
4577564
我的疑问是:输出的地址多是相同的,但是每一次循环j不应该重新的分配变量j的空间吗?为什么没有重新的分配?


[解决办法]
1)C编译器会优化程序。
2)并且你循环里的代码固定,每次分配回收栈的位置是固定的,也就是地址不变。

读书人网 >VC/MFC

热点推荐