回复: 请教各位大大关于动态内存管理的问题…… 1。谁也没保证过i和j就一定会在栈上分配。编译器完全可以把它们放在寄存器里。
2。谁也没保证过i和j肯定占用各自独立的寄存器或者栈空间,编译器完全可以经过分析发现j使用的时候i已经用不着了,所以干脆节省了一个寄存器/栈空间和一次赋值操作。
3。甚至没有保证会分配任何寄存器/栈空间,编译器完全可以直接把常量1编进机器码,就根本不会出现所谓“局部变量”。
4。所有这些都跟程序员没关系,你关心的就是cout能打印出来那个值。其它的什么“意图”什么的扯不上。
此帖于 2008-03-06 12:35 AM 被 ajoo 编辑.
|