1樓:
不知道您用的是哪個編譯器,我用vs2008的答案是:最後n=48,y=13,反彙編如下:
int y=10, n;
00bc14ce mov dword ptr [y],0ah
n=(y++) +(++y)+(y++)+(++y);
00bc14d5 mov eax,dword ptr [y]
00bc14d8 add eax,1
00bc14db mov dword ptr [y],eax
00bc14de mov ecx,dword ptr [y]
00bc14e1 add ecx,1
00bc14e4 mov dword ptr [y],ecx
00bc14e7 mov edx,dword ptr [y]
00bc14ea add edx,dword ptr [y]
00bc14ed add edx,dword ptr [y]
00bc14f0 add edx,dword ptr [y]
00bc14f3 mov dword ptr [n],edx
00bc14f6 mov eax,dword ptr [y]
00bc14f9 add eax,1
00bc14fc mov dword ptr [y],eax
00bc14ff mov ecx,dword ptr [y]
00bc1502 add ecx,1
00bc1505 mov dword ptr [y],ecx
2樓:
首先,你要知道,y++是先用再自加。++y是先自加再用
所以n=10+12+12+14=48
3樓:
y++=11 (y=10)
++y=11 (y=11)
y++=12 (y=11)
++y=12 (y=12)
n=11+11+12+12=46
y=12
c語言中自增怎麼計算的,C語言中 自增怎麼計算的?
首先 優先順序大於 所以等價於 int y a a a 前置 先加1後返回值。後置 先返回值後加1。a 1 執行完後,此時a的值為1 然後a 先返回a的值,所以 a a 2 執行完後,此時a的值為2 所以 a a a 4 執行完後,此時a的值為3 y a a a 滿足左結合規則,等價於 y a a ...
c語言編輯計算,。。。。c語言。。編輯。。。計算1 1000內所有含6的數的和。。求解。求技巧
完整 給你參考 include include int main printf n n1 1000包含6的數的合為 d n sum getch return 0 借用一樓的 稍做下修改 int main void a 10 printf sum ld n sum return 0 注意是含6的數,不...
C語言計算
n的值不變,還是2 運算的特點如下 1.運算是左結合的,先計算左表示式,再計算右表示式2.注意一下,如果 的左表示式為假,則整個 表示式返回假,不會再計算右表示式!所以 表示式 m a b n c d 先計算 m a b 由於a 5,b 6,所以a b為假,返回0m a b也就變為m 0,所以左表示...