小菜鸟,零基础,问大家一个很简单的问题
我做了一道单选题,是这样的x的初始值是2, x++,2*x. 我认为x的值是4,可是答案是6,求解求解!!各位大神求解啊[ 本帖最后由 心海天蓝 于 2013-3-25 08:55 编辑 ]
#include<stdio.h> int main() { int x = 2; int b = (x++, 2 * x); return 0; }
6: int b = (x++, 2 * x); 0040102F mov eax,dword ptr [ebp-4] //取数据 2 ,存入 eax 00401032 add eax,1 //eax 中的数 即 x加 1,eax值变为 3 00401035 mov dword ptr [ebp-4],eax //放回。此时 x值已经变成 3了 00401038 mov ecx,dword ptr [ebp-4] //再取数据 3, 0040103B shl ecx,1 //左移 1位,就是乘以 2的意思,结果为 6 0040103D mov dword ptr [ebp-8],ecx //把 6存入 b对应的地址