C語言 i的問題

2022-08-23 09:30:05 字數 895 閱讀 9583

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