软讯网络 > 编程语言 > C/C++ > i=i++;后
【标 题】:i=i++;后
【关键字】:
i++
【来 源】:http://www.cublog.cn/u/10690/showart.php?id=189145
i=i++;后
i=0;
i=i++;
i最后为多少。
用gcc编译为汇编,我们可以看到最后结果为什么。
。。。。。。
。。。。。。
call ___main
movl $1, -4(%ebp) //寄存器变址寻址,相当于intel风格的[ebp-4]
movl -4(%ebp), %edx
leal -4(%ebp), %eax //将-4(%ebp)的有效地址送到%eax中
incl (%eax)
movl %edx, -4(%ebp)
movl $0, %eax
leave
ret
编译器将i先存在%edx中,然后再将有效地址送入%eax中,加一后再把%edx的内容存入i中,所以i的值不会改变