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 如果...