1樓:
一樓的不對,這個問題這樣解釋:
對於「++」後置時,它在一個語句中會先用被加變數的原值進行操作,操作完以後再對變數進行自增。
對於「++」前置時,它在一個語句中會先對被加變數進行自增,操作完以後再用被加變數改變後的值進行操作。
更詳細解釋去看《c程式設計》吧。
對於這個例子而言,是先進行計算a = a + a + a + a,即a = 10 + 10 + 10 + 10,然後再對a進行四次自增運算,所以是44。
我的意見和三樓一樣,這種表示式在實際程式設計時根本沒用,只會使**的可讀性變差,只在考試時對考官們有使用價值。
2樓:匿名使用者
對於「++」後置時,它在一個語句中會先用被加變數的原值進行操作,操作完以後再對變數進行自增。
對於「++」前置時,它在一個語句中會先對被加變數進行自增,操作完以後再用被加變數改變後的值進行操作。
更詳細解釋去看《c程式設計》吧。
3樓:大佬莫
a=(11)+(11)+(11)+(11);
我在想這個問題是太簡單,還是我根本就錯了,想歪了。
你知道a++的意思嗎?
4樓:匿名使用者
a++就是說明10+1,得11,那麼有4個a++.就是說有4個11相加 ,你說結果不是44會是什麼
5樓:百小度
支援三樓和四樓的 不同的編譯器對求值的順序是不一樣的(有的從後向前 有的從前向後) 這樣產生的結果也就不一樣 所以樓主沒有必要討論這個問題 只需要明白a++是先使用變數a後將變數+1 還有++a是先將a+1再使用a的值就行了
that's all
6樓:匿名使用者
在不同的操作環境下對於這類問題可能會得到不同的結果,但無論哪種方法都不應算是錯誤的,因為對於c運算子和表示式的使用靈活,ansic並未具體規定表示式中子表示式的求值順序。
例如:int i=3;j=(i++)+(i++)+(i++)? 有的系統按自左而右順序求解,求完第1括號的值後,實現i的自加變為4,從而表示式相當於3+4+5即j=12;而如turbo c則把3作為所有i的值,因此所有i相加得表示式j值為9,i值為6.
應儘量避免使用這種引起歧義的語句,如果想得到表示式為12可用:i=3;a=i++;b=i++;c=i++;d=a+b+c;d=12
所以你那道題在turboc等環境下結果為10+10+10+10=40,然後各式自加1得44;
若按第一種方式表示式值10+11+12+13=46
總之這種題多見於考試題,沒用實際的使用意義。不知我的答覆是否有道理,歡迎各位高手多加指正
7樓:允夢竹
編譯器問題,討論沒價值~
8樓:匿名使用者
不同編譯系統有不同答案的
9樓:匿名使用者
這種表示式有歧義,不建議使用。
參見 《c程式設計》(第三版) 58頁
10樓:
a++=a+1 自己算吧
11樓:網安石
我不懂,不應該是先用後加一嗎?該是40吧?
C語言程式解釋
有符號int裡 1的補碼儲存就是16進位制的0xffff sizeof int 2 無符號int裡0xffff 的10進位制值就是65535 至於是65535還是4294967295 用sizeof int 看看int型別佔幾個位元組就知道了,不同編譯器不一樣的 unsigned int a 是無符...
求解釋這個C語言程式,謝謝,求解釋c語言這道題,看不懂程式,解釋一下過程謝謝
o i q n x i 迴圈取p陣列裡第襲x元素到bai陣列最後一個du元素到新的o陣列中其中 q n 指向最後一個元素 zhiq n x 指向要求移動dao的若干元素的第一個位置 一共x個元素要移動 q n x i i迴圈來取x個需要移動的元素for p p n 1 p q p p p x 迴圈,...
c語言中奇怪的結果求大神解釋C語言中,一個奇怪的結果,求大神解釋
include include int main return 0 在具體 有不明白的再問 反彙編了下 include include int main 你的問題應該就是不明白為什麼這句 printf d these that 列印的是1吧,因為這裡他比較的是地址,你先宣告瞭 that 常量 注意這...