1樓:匿名使用者
我在vs2008中得到的結果是18。很明顯編譯器先求出了所有的子表示式,即3個(++i)的結果再計算整個表示式的值。不知你用的是哪個版本?
但是這種寫法可能是歧義的,至少是很危險的。你可以想象,編譯器很有可能求出第乙個子表示式的值,並將結果儲存起來,然後該結果不會被其他子表示式的計算所更新,那樣結果就是另乙個樣子。所以,我認為你的寫法有問題。
最好不要再乙個表示式的多個子表示式中對相同的變數進行更新,也可以說多個子表示式的***之間不要有依賴關係。
2樓:匿名使用者
如果單純的i 和 i 而沒有再賦值的話沒有區別都是相當於 i = i 你要記住c語言裡面符號的運算優先順序,a ,相當於設b=a , 的優先順序
3樓:蔚海韻
++i等價於i=i+1,然後++i整體等於i;
i++等價於i++整體等於i,然後i=i+1.
說白了就是加1和等於i順序的問題。
4樓:五更學長
(++i)自加運算 優先順序高於加法運算 所以i加1為4 j=12
5樓:無憂網事
正確答案:i=6,j=18!!
因為++i是先自增,後引用。
++i,i的值為4;
再++i,i的值為5;
再++i,i的值為6;
自增結束後,再引用i的值,這時i的值已經變為6。
所以j的為6+6+6=18
6樓:
狂頂 無優網事
一堆人不知道在說什麼亂78糟的東東
剛試了下 在xp+vc6.0也是j=16
lz等下 我在研究下 xp+dev_c++也是j=16 無語了
C語言問題,C語言問題
符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...
C語言問題,c語言問題
這是值傳遞,值傳遞的過程的是,系統會給你的實參的值進行乙個拷貝,把這個拷貝傳遞給形式引數。因為是拷貝,所以實參裡頭的值是不會改變的。如果是位址傳遞就不一樣了。補充 你可以定義乙個指標,這個指標指向主函式的結構體。然後子函式的形參也定義乙個指向結構提的指標。這樣就是位址傳遞了。樓主還是好好花點時間看看...
C語言問題謝謝,C語言報錯的問題?
先寫個函式,原型類似 char convert char from 然後for迴圈遍歷每個字元,呼叫convert函式賦值 c語言問題,謝謝!這樣簡單的 復問題,按照制書上的舉例。套出一bai個來就行了,就是du乙個迴圈語句,內 zhi加乙個判斷奇偶語句dao就行了吧!源程式如下 include i...