1樓:燕凡陽布濤
這是個變數自加的問題,i++和++i是有區帶頌別的。
當一段**裡出現。
i++;或。i;..
時,他們其實沒多大區別,只是++i的執行效率要高些,但對結果i的值都是一樣的。
但如果**裡出現的是。
m=i++;
或。m=++i;..
時,他們結果就不一樣了,因為i++是先賦值再自加(可以理解為2句:m=i;++i;),而++i是先自加再賦值(可以理解為2句:++i;m=i)。
也就是說如果i=5,那麼執行之後,前者猛行悄的m=5;而後者m=6.
這些你可以試一下再慢慢體會,希望枝渣對你有幫助。。。
2樓:無海藍蠻能
首先,表示式是構成語句的基本單位,c語言中的表示式是由運算子串聯起來的式子,所串聯的物件可以是常量、變數或函式呼叫。表示式的劃分是由運算子來決定的,由算術運算子串聯起來的式子稱為算術表示式;由關係運算子串聯起來的高鬥式子稱為關係表示式等戚叢磨。
表示式的值表示式的值是表示式運算後的結果,任何乙個表示式都會有乙個值及其型別,這個值是乙個常量,也就是說任何乙個最小表示式的值都是乙個某種型別的常量,算術表示式的的值是整形或浮點型的常量,關係表示式或邏輯表示式的值是邏輯量0或1。
其次,逗號表示式是一組由逗號分隔的表示式,這些表示式從左向右計算。逗號表示式的結果是其最右邊表示式的值。如果最右邊的運算元是左值,則逗號表示式的值也是左值。
c++中,鄭譁規定了運算元計算順序的操作符還有條件(?:和逗號操作符。除此之外,其他操作符並未指定其運算元的求值順序。
最後,這裡使用了++自增操作符。自增操作符有兩種形式:前置操作和後置操作。
前自增操作生成左值,在給運算元加1後返回改變後的運算元值。後自增操作生成右值,給運算元加1但返回未改變的運算元原值。
表示式 i=1,i++,i+2,i++ 的值為什麼是2呢?
3樓:網友
首先得知道:
賦值運算子的優先順序高於逗號表示式。
後置自增是先使用值再自增1
逗號表示式從左往右依次計算,最後的結果是最右邊那個子表示式的值。
所以,先賦值i=1;再算i++,結果是i=2;再算i+2,結果是4最後被丟棄且不影響i;最後算i++,結果是整個逗號表示式的值是i的當前值2,而i最後等於3。
設有int i:則表示式i=1,++i,++i‖++i,i的值是多少
4樓:倒黴熊
3++i,後變為2
而 ||表示 或的意思,兩邊只要有乙個為真,則這個表示是為真。
如果 ||前面已經為真了,其後邊的就不再執行判斷。
因為 ++i ||i,前面++i後,i變為3,為真,所以其右邊的++i不再執行。
所以為3.
5樓:阿加莎的三色貓
可能是3,這表示式能編譯?
為什麼i=2時(i++)+(i++)+(i++)輸出的值為六
6樓:漢曼冬梁覓
+i表示在使用i之前粗猛碼,先使i的值+1
i++表示在使用i之後,使i的值+1
你的第一巖哪個問題是先使用i=2,3個(++i)的結果都是2,所以表示式的知蘆結果是6.
7樓:鄲任謝鑫
i++)是先執行了括號外褲搏蘆的胡帶+,再將i自增,則有2+2+2=6;而(++i)+則銀槐相反,先將i自增後再執行括號外的+,即3+4+5=13
8樓:萬山菡禾悌
在語句(i++,j)&&k,先執行i++,i=2,再執行--j,j=0,「,運算子,將最後的結果0參與邏輯與&&運算的左值,因為為0,所以&&後面的不用求值,也就知道該邏輯式的值為假,故不會執行++k的操作,這叫「短路」效應,想必你聽說過吧。
而在語句(i++,j--)k中,整個邏輯運算表示式為乙個「序列點」,即j--在整個邏輯表示式計算完之後再執行,也就是說,左值為1,則需繼續計算++k,再判斷鄭搜喚邏輯運算結果的「真」與「假」。
從上面分析可知,由於&&運算子的短路效應,前乙個語句執行後,k的值為1,後喊凱乙個語句執行後,k的漏森值為2。
i為int型變數,且初值為3,有表示式i=i+=i*5,則該表示式的值是?變數i的值是?
9樓:網友
表示式和變數i都為30
關於乙個i++和++i的問題,解釋一下i和a值的變化過程
10樓:網友
簡單的我就不說了,什麼i++,i是先取值還是先自加,看到了這個問題是,我一時間感到很詫異,後來具體反彙編之後才明白他的真正過程是這樣的:
首先算(++i)*(i++)i不用說,肯定要自加,所以此時i=4,之後是(i++)這個表示式的值為4,所以結果為16,注意重點在這裡了,雖然i++表示式的值取完之後並不立刻自加。這計劃執行完,i的值還是4.
然後算的是16*(+i),此時i先自增為5,相乘之後為80,所以,a=80。此時i還為5,表示式運算完畢,然後中間的表示式(i++)才自增,所以i最終等於6;
重點:i++表示式,不是取完值之後立即自加,而是等整個表示式都運算完成才自加,而++i就在運算之前就自加。
這樣就可以解釋(i++)i++)i++)= 27;
+i)*(i)*(i) = 150了。
11樓:鈍角111度
++i是先自加一,再用,i++是先用,再加一,4*4*5.是自加了三次,是6.不過不同的編譯器編譯順序不一樣,有的從左往右,有的相反,儘量不要寫別人看不懂,也不知道編譯器會怎麼操作的程式。
i為整型變數,且初值是3,有表示式i++-3,則該表示式值是__變數i的值是__大神們幫幫忙
12樓:因為是男紙
可以這樣思考,應為運算子優先順序的原因,i++的優先順序最高,相當於(i++)3,然後就很明白了,這是乙個表示式,那麼i先參與運算後自增,相當於 x=i-3; i=i+1; 所以答案就是 x=0,i=4希望。
CAD圖紙中i 1不知道什意思,建築圖紙上標註i 1 12是什麼意思
i是坡度,你看的bai是不是 du土木建築的圖紙zhi?相鄰等高線之間的高差稱dao為等高距,版常以 h 表示。在同一幅地形圖權上,等高距 h 是相同的。相鄰等高線之間的水平距離稱為等高線平距,常以 d 表示。h 與 d 的比值就是地面坡度 i h d m 式中 m 為比例尺分母。坡度 i 一般以百...
當自變數X取何值時,函式y二分之五1與y 5X 17的值
y 二分之 來五源x 1與y 5x 17的值相bai 等 du得方程 zhi 二分之五x 1 5x 17 5 daox 1 10x 34 5x 5 10x 34 5x 10x 34 5 5x 29 x 29 5 y 5x 29 5 17 29 17 12 1 y 2.5 1 2 y 2.5x 1 y...
設函式fx xx a(1)當a 1時,求
fx baix 1 x 4 a x 1 4 x a duix 1 4 xi a 5 a 1 當a 1時,求函zhi 數daofx的最小值5 1 4 2 若 專fx 4 a 1對任意實數x恆成立屬.5 a 4 a 1 a 0 還是抄 用初中的方法講吧 1 f x x 1 x 4 1 絕對值中的數可以看...