c語言自加問題,求解

2022-11-29 13:05:18 字數 828 閱讀 3588

1樓:

m的結果是18

等我仔細解析下 這是運算子優先度問題

前面的三個(--p)是同時運算的 所以應該前面是1+1+1+後面後面就不同了 因為優先度問題 你的括號並沒用加不加都一樣

所以後面應該是這樣讀 前面+p 然後 p再++ 之後後面一樣所以後面是+3個5 前面是1+1+1

最後p=1 q=8 m=18

好吧 我說明一下6.0編譯器的20怎麼來的吧他的讀法是從右往左 是編譯器問題

前面是(--p)+(--p)+(--p)=5,後面(q++)+(q++)+(q++),就是5+5+5,最後才自加q=8

最後m=5+15=20

2樓:希伯來爵

你可以不必在意這個問題,因為像 m=(--p)+(--p)+(--p)+(q++)+(q++)+(q++);

這種不規範的寫法具體的實現是由編譯器決定的說的嚴重點,這種寫法是危險的

在我的vs2012上,m的結果是18

vc++6.0已經是相對落後的編譯器了,沒辦法學校還在用你既然是為了應對考試,你就好好捉摸vc++6.0的脾氣吧這種事情沒辦法的

3樓:匿名使用者

各個編譯器 它求解的時候,是不一樣的,不要太在乎這個, 況且,應用中也沒有 這樣寫的,容易出錯,這不是給自己找麻煩了

4樓:匿名使用者

不對的。對(--p)+(--p)+(--p)來說--p先p-1再運算。就是3+2+1,最後p=1.

對(q++)+(q++)+(q++)來說先運算在q+1,就是5+6+7,最後q=8

這樣最後m=20

c語言問題求解答具體點,C語言問題求解答

cpp1.exe 1 error s 0 warning s cpp1程式一個錯誤0個警告 c語言問題求解答 第一個days day 獲取最後一個月的天數 第二個switch month 1 獲取除了最後一個月之外完整月的天數之和 逗號表示式從左往右依次計算,取最右邊的表示式的值為整個表示式的值 答...

c語言的問題,求解答,c語言的一個問題,求解答!

改的挺多的。實力有限,望採納 附 在vc 編譯器下,選中 按alt f8可以對 進行排版 include int main swap pmin,a 0 output a for i 0 i 10 i swap pmax,a 9 output a return 0 void input int a v...

簡單c語言問題求答,簡單c語言問題求解答。

你把 發上來,才能幫你看,幫你找錯誤吧。一個很簡單的c語言問題,求高手解答,謝謝!scanf 分數 d n score 是錯的,這樣會導致你無法輸入任何資料。不信你可以先給score賦一個初值,然後 printf d score 就會發現score永遠是初值。應該寫成scanf d score 如果...