1樓:青樓國際
主要是乙個運算子優先順序的問題,在你這個例子中, - 和++是同級別的,運算規則從右到左,也就是先算出m++的結果,但是x=m++是先賦值在自加,在本例中,x=m++=3,所以-m++=-3。
/號的優先順序比++要低,然後+和/是同級別的,但是先乘除後加減,也就是先運算出++n的結果,然後再用8去除以這個結果,然後再加上x。
所以這道題的最終答案是-2. 因為你定義的變數是int型。 所以小數部分被忽略。
注意,樓上的同學說錯了,雖然-和++是同級別,但是運算法則是從右到左,就好像減號和除號是同級別,但是先乘除後加減。你去編譯一下看看就知道了。
2樓:匿名使用者
x = -m++
先算m++,m++的意思是先使用m的值然後再自加1,也就是x = -3,m = 4;
x = x + 8/++n
++n的意思是n自加1後再使用n的值,即 x = x + 8/5 = x + 1 = -2;此時n = 5;
結果x = -2;
++在前在後都會使變數自身加1,影響的是我們使用的是加前值還是加後值。
還有就是8/5結果應該是個整數。
希望對你有所幫助。
3樓:匿名使用者
x=-m++;x的值為-3然後m的值加1變為4
x=x+8/++n;n的值先加1變為5然後計算x=-3+8/5=-3+1=-2
c語言問題,C語言問題。
考驕 用指標將兩個字串連結接起來,前一個while迴圈,確定s1字串走完,第二個while開始將s1的逐個字元複製給s1走完,也就是末尾,這樣就可以把字串都匯入到s1中 最後一個空寫的應該寫return s1 長魚修韋 很久沒碰這東西了。我來解釋下 第一個while的迴圈是為了讓指標指向第一個字串的...
C語言問題,c語言問題?
自我程式設計 列印輸出乙個ok。因為前面迴圈for語句有分號結束。所以後面的printf語句不在迴圈內,不受迴圈語句影響。 理佑平鄲胭 結果是22 7 7 8 22 你可以將 i i i i是先 1再計算,還有這裡的運算順序是從左到右,所以應該是7 7 i 14 8 22 前兩個相加時,i先加1,加...
c語言問題,C語言問題?
這個問題說難不難,但理解可能有點玄乎而已,但是打個比方來理解就太容易掌握啦!就是說scanf的認定讀取,比如你單純的scanf c ch 那麼實際上已經認定了第乙個字元出現就把它賦予給ch,如果是你的scanf c 前面多了乙個空格,所以就認定了出現第乙個空格後的字元賦予給ch,如果寫成這樣 sca...