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

2021-10-17 05:01:11 字數 3818 閱讀 6295

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語言中,p1的計算優先順序,c語言中運算子有哪幾種,優先順序順序是怎樣

這是複合賦值表示式。等同於 p p 1 指標p所指向的內容加1後儲存到指標p所指向的地址中。所以,優先順序是先算 在這裡 運算子並不是乘法運算子,而是指的間接引用運算子,然後再算 運算子。運算子的優先順序高於符合運算子 即 p 1的功能等同於 p 或 p 也就是說,增加的是p指向的內容,而不是改變指...

C語言中都有哪些運算子,c語言中有哪些運算子,各有什麼功能?

加來 減 乘 除 取餘 小於 大於 大於等於自 等於 不等於 與 bai 或 非du 按拉與 按位或 賦值 自增 自減zhi 條件運算子dao 異或 sizeof 複合賦值運算子 分組 左移 右移 按位取反 有時一般分為 單目運算子 雙目運算子 條件運算子 賦值運算子 逗號運算行 大體上分為這些,希...

C語言中賦值運算子的含義,在C語言中11種賦值運算子的具體含義,用法?

a b的意思是a a b,a和b位運算相 與 後賦給a。類似的還有 a b,a b.a b,a b,a b,a b,a b,a b,a b,跟上面的意思一樣。你儘管放心我的答案吧,我是照著教科書寫的。只聽說過 沒聽說過 在c語言中11種賦值運算子的具體含義,用法?1.六個變數 表示式的賦值 是賦值運...