++b+(++b) 已看过置顶帖
b =4;
cout<<++b + (++b);
输出:12
看过裘老的解释的解释了, 知道这个答案依赖于编译器的实现,
在下想问,得出12的这个结果 编译器是如何工作的;
是不是: 首先++b 得到5, 再++b得到6 最后算加法的时候 从b的内存地址中 取出b的值 也就是6 所以得到了12
[解决办法]
楼主说的正确:
mov eax,dword ptr [b]
add eax,1
mov dword ptr [b],eax
mov ecx,dword ptr [b]
add ecx,1
mov dword ptr [b],ecx
mov edx,dword ptr [b]
add edx,dword ptr [b]