C語言的疑惑

2022-11-07 03:32:05 字數 1165 閱讀 2052

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 整合程式設計系統。一 性質...