1樓:終湛
y=(++b)+(++b)+(++b);對這個式子,計算機要作兩次運算,
1,(++b)+(++b);這時b=10,得到20。
2,得到答案後現加(++b);這時b=11,得到31。
x=(a++)+(a++)+(a++);
同樣的,先作(a++)+(a++),a=8,得到16。由於這個表示式還沒完成,所以a還不能進行自加運算,要一直到這個表示式完成後才能自加,所以第二次加時,還加的是8,完成後a再自加,成為11。
2樓:
這是這兩句話的彙編**,希望你能看懂就理解編譯器的工作了
x=(a++)+(a++)+(a++);
0x08048633 : mov 0x2c(%esp),%eax
0x08048637 : add %eax,%eax
0x08048639 : add 0x2c(%esp),%eax
0x0804863d : mov %eax,0x34(%esp)
0x08048641 : addl $0x1,0x2c(%esp)
0x08048646 : addl $0x1,0x2c(%esp)
0x0804864b : addl $0x1,0x2c(%esp)
y=(++b)+(++b)+(++b);
0x08048650 : addl $0x1,0x30(%esp)
0x08048655 : addl $0x1,0x30(%esp)
0x0804865a : mov 0x30(%esp),%eax
0x0804865e : add %eax,%eax
0x08048660 : addl $0x1,0x30(%esp)
0x08048665 : add 0x30(%esp),%eax
0x08048669 : mov %eax,0x38(%esp)
3樓:藍色草原
沒有實際意義,建議不用深究。
知道運算子優先順序就可以了。
4樓:不要太過於天真
樓主啊,做這種題不值,把人搞暈了,真程式設計序沒人會這樣寫的
5樓:莫留標
給我加分,我就幫你,我會.
關於c語言的 疑惑,關於C語言的 疑惑
for i 2 i a 1 i for i 2 i a 1 i include int desk int a void main int a,z scanf d a z desk a switch z case 1 printf d不是素數 n a break default printf d是素數...
c我有給計算疑惑,求解,c語言的位運算疑惑
c c 中,運算子號 它叫 賦值號,它的意思是把 賦值號右邊 表示式 的值 賦給 賦值號左邊的變數,左邊的變數,無論它原先是否有值,無論原先的值是什麼,執行 賦值後,就變成了 右邊 表示式 的值了。a賦值3,b賦值0。b a 2 這是賦值運算,b變成了 5。接著 a b 這是賦值運算,把b 的當前值...
vc是什麼語言跟c語言c的區別C語言和C語言的區別是什麼?
vc,全稱copy為microsoft visual c microsoft visual c 簡稱visual c msvc vc 6.0或vc6.0 是microsoft公司bai 推出的以c 語言為基礎的開 du發windows環境程zhi序,物件導向的視覺化dao 整合程式設計系統。一 性質...