C語言中增1減1運算子,c語言關於自增自減運算子的一個問題

時間 2021-10-17 05:00:00

1樓:小嫣老師

自增(++)和自減(--)操作符為物件加1或減1操作提供了方便簡短的實現方式。它們有前置和後置兩種使用形式。i++ 等同於 i = i + 1。

++和--既可寫在變數之前,稱為前置運算,如:++a;--a;++和--也可以寫在變數之後,稱為後置運算,如:a++;a--。

對單獨一個變數實行前置運算或後置運算,其結果是相同的,都是使該變數的值增加或減少1。

然而,當它們用在表示式中,其效果就不同了。當遞增或遞減運算子放在其運算變數前面進行前置運算時,c語言在使用該變數之前進行遞增或遞減操作;如果運算子在運算變數的後面進行後置運算,那麼,c語言在使用運算變數的值之後執行遞增或遞減運算。

擴充套件資料

自增和自減的示例:

#include

執行結果:

a=10, b=20

a=11, b=19

a=12, b=18

自增自減完成後,會用新值替換舊值,並將新值儲存在當前變數中。自增自減只能針對變數,不能針對數字,例如10++是錯誤的。

值得注意的是,++ 在變數前面和後面是有區別的:

++ 在前面叫做前自增(例如 ++a)。前自增先進行自增操作,再進行其他操作。

++ 在後面叫做後自增(例如 a++)。後自增先進行其他操作,再進行自增操作。

2樓:悟空

++n是先加1後執行 例如 n初值為2,m初值為1,m+=++n; m的值應該是4 n++是先執行後加1 例如 n初值為2,m初值為1,m+=n++; m的值應該是3 --n和n--同上

3樓:天上人間丶

++n是先執行n自加1後執行語句。 n++是先執行語句後n自加1。 --n是先執行n自減1後執行語句。

n--是先執行語句後n自減1。 假如是n=5 x=n++ x=5 n=6 x=++n x=6 n=6

c語言關於自增自減運算子的一個問題

4樓:伊·梵

這個沒什麼好討論的,tc就是這樣的結果

換vc就會發現另外一個結果

在一個表示式中對一個變數的多次自增(增減)操作,其運算結果依賴編譯器的實現方式

顯然,這裡tc對int 和 float 採取了不同的法則

5樓:匿名使用者

第一個程式x=5,而第二個程式x=1

結果當然不一樣啦。

6樓:我不知道想請教

當然不一樣啊

一個是%d 是以十進位制形式輸出

%f 是輸出單精度型 預設6位小數

7樓:匿名使用者

我明白你的意思是什麼,你不清楚的是這裡y=++x*++x這個運算,因為++的優先順序在*之上,所以先進行兩次自增才進行乘運算,而++在x前,所以每自增一次都要存回x,所以連續進行兩次,*的兩邊都相當於自增兩次,所以是7*7=49,後一個同理

c語言中自加與自減運算子前置與後置結果為什麼有時一樣有時不一樣啊,怎麼區別

8樓:智慧it人生

這個要看你所用的編譯環境了,不同的編譯環境執行的順尋不一樣一般情況下是:

如++i,--i.在使用i之前,先使i的值加(減)1i++,i--,在使用i之後,使i的值加(減)1

9樓:匿名使用者

如++i,--i.在使用i之前,先使i的值加(減)1

i++,i--,在使用i之後,使i的值加(減)1

10樓:匿名使用者

想得到正確答案,請提供詳細**

#include void main() { int x=1,y; y=++x*++x; printf("%d\n",y); }

11樓:

譚浩強 c語言程式設計

c語言的運算子可分為以下幾類:

1. 算術運算子:用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求餘(或稱模運算,%)、

自增(++)、自減(--)共七種。

2. 關係運算子:用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)、小於等於(<=)和不等於(!=)六種。

3. 邏輯運算子:用於邏輯運算。包括與(&&)、或(||)、非(!)三種。

4. 位操作運算子:參與運算的量,按二進位制位進行運算。包括位與(&)、位或(|)、位非(~)、

位異或(^)、左移(<<)、右移(>>)六種。

5. 賦值運算子:用於賦值運算,分為簡單賦值(=)、複合算術賦值(+=,-=,*=,/=,%=)和複合位

運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。

6. 條件運算子:這是一個三目運算子,用於條件求值(?:)。

7. 逗號運算子:用於把若干表示式組合成一個表示式(,)。

8. 指標運算子:用於取內容(*)和取地址(&)二種運算。

9. 求位元組數運算子:用於計算資料型別所佔的位元組數(sizeof)。

10. 特殊運算子:有括號(),下標,成員(→,.)等幾種。c語言的運算子可分為以下幾類:

1. 算術運算子:用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求餘(或稱模運算,%)、

自增(++)、自減(--)共七種。

2. 關係運算子:用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)、小於等

運算子的優先順序:c語言中,運算子的運算優先順序共分為 15 級。1 級最高,15 級最低。

在表示式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算子

優先順序相同時,則按運算子的結合性所規定的結合方向處理。

自增、自減運算子

自增1,自減1運算子:自增 1 運算子記為“++”,其功能是使變數的值自增 1。

自減 1 運算子記為“--”,其功能是使變數值自減 1。

自增 1,自減 1 運算子均為單目運算,都具有右結合性。可有以下幾種形式:

++i i 自增 1 後再參與其它運算。

--i i 自減1 後再參與其它運算。

i++ i 參與運算後,i的值再自增 1。

i-- i 參與運算後,i 的值再自減 1。

解答問題:

x=1為初始化值.

y=++x * ++x;

第一個++x, x=2;

第二個++x, x=3; 同樣道理 第一個++x 也=3; 因為x的記憶體地址不變.第二個++x加了1後=3.第一個++x也會改變自身的值.所以:結果=9

在visual c++6.0編譯後結果=9

12樓:

等於9.

編譯試了的,等於9。我也不懂。明天問問老師,或者等下面的高人回答吧。

13樓:手機使用者

遞迴函式中,x的值分別是6,3,1,遞迴函式中,位於遞迴呼叫語句後的語句的執行順序和各個被呼叫函式的順序相反,所以輸出136。

14樓:匿名使用者

++的優先順序高於*,故先執行++,x自加了兩次,故等於3,不管他有幾個++x,x的值都等於最後的那個++後的結果

15樓:匿名使用者

應該是9 首先++x x此時是2 然後再++x 此時x是3 然後x*x 賦值給y y就是9了 、如果是y=(x++)*(x++) 樓主想想x是多少 y是多少

16樓:黃石佳誠家電維修

等於6,程式設計環境不同

c語言中運算子是取整運算子嗎,C語言中“ ”運算子是取整運算子嗎?

終極至尊粉 printf f,f 10.0 3,10.0 3 雙目運算具有左結合性。參與運算量均為整型時,結果也為整型,捨去小數。如果運算量中有一個是實型,則結果為雙精度實型。printf d,d 10 3,10 3 printf f,f 10.0 3,10.0 3 c語言有以下幾種取整方法 1 直...

c語言關係運算子,c語言中關係運算子和自加自減運算優先順序哪個高

蘇嘉愛娛樂 是右移運算子,移位運算子的一種 程式設計中,位操作運算子的一種。c語言中位移位運算子是將資料看成二進位制數,對其進行向左或向右移動若干位的運算。位移位運算子分為左移和右移兩種,均為雙目運算子。第一運算物件是移位物件,第二個運算物件是所移的二進位制位數。位移位運算子的運算物件 運算規則與結...

c語言自增運算子問題

肯定不一樣的,運算子很簡單,a 和 a首先將他看成一個賦值表示式a 是a a 1,當a初始值為0的時候a會等於1。但是a 和 a的區別是a 整個表示式的值是從0開始而 a是先做自加運算再賦值其整個表示式 a的值為1 不一樣,a 叫後置自加,a叫前置自加.區別就是a 是先運算後自加,另一個是先自加,後...