乙個整數型別的變數自身加 1 可以這樣寫:
a = a +
1;
或者
a +=
1;
不過,c語言還支援另外一種更加簡潔的寫法,就是:
a++
;
或者
++a;
這種寫法叫做自加或自增,意思很明確,就是每次自身加 1。
相應的,也有a–和--a,它們叫做自減,表示自身減 1。
++和–分別稱為自增運算子和自減運算子,它們在迴圈結構中使用很頻繁。
自增和自減的示例:
#include
intmain()
執行結果:
a=
10, b=
20a=
11, b=
19a=
12, b=
18
自增自減完成後,會用新值替換舊值,將新值儲存在當前變數中。
自增自減的結果必須得有變數來接收,所以自增自減只能針對變數,不能針對數字,例如10++就是錯誤的。
需要重點說明的是,++ 在變數前面和後面是有區別的:
++ 在前面叫做前自增(例如 ++a)。前自增先進行自增運算,再進行其他操作。
++ 在後面叫做後自增(例如 a++)。後自增先進行其他操作,再進行自增運算。
自減(–)也一樣,有前自減和後自減之分。
下面的例子能更好地說明前自增(前自減)和後自增(後自減)的區別:
#include
intmain()
輸出結果:
a=
11, a1=
11b=
21, b1=
20c=
29, c1=
29d=
39, d1=
40
1 . 對於a1=++a,先執行 ++a,結果為 11,再將 11 賦值給 a1,所以 a1 的最終值為11。而 a 經過自增,最終的值也為 11。
2 . 對於b1=b++,b 的值並不會立馬加 1,而是先把 b 原來的值交給 b1,然後再加 1。b 原來的值為 20,所以 b1 的值也就為 20。而 b 經過自增,最終值為 21。
3 . 對於c1=–c,先執行 --c,結果為 29,再將 29 賦值給c1,所以 c1 的最終值為 29。而 c 經過自減,最終的值也為 29。
4 . 對於d1=d–,d 的值並不會立馬減 1,而是先把 d 原來的值交給 d1,然後再減 1。d 原來的值為 40,所以 d1 的值也就為 40。而 d 經過自減,最終值為 39。
可以看出:a1=++a;會先進行自增操作,再進行賦值操作;而b1=b++;會先進行賦值操作,再進行自增操作。c1=–c;和d1=d–;也是如此。
自增自減示例:
#include
intmain()
輸出結果:
c=
11, d=
14
程式解析:
1 . 執行語句①時,因為是後自減,會先進行a-b運算,結果是 11,然後 b 再自減,就變成了 0;最後再將a-b的結果(也就是11)交給 c,所以 c 的值是 11。
2 . 執行語句②之前,b 的值已經變成 0。對於d=(++a)-(–b),a 會先自增,變成 13,然後 b 再自減,變成 -1,最後再計算13-(-1),結果是 14,交給 d,所以 d 最終是 14。
你的贊是對我最大的支援!!!
C語言自增自減
i,i 使用i之前,先使i的值加 減 1。i i 使用i之後,再使i的值加 減 1。其中 i和i 的作用相當於i i 1。但是 i和i 不同之處在於 i是先執行i i 1後,再使用i的值 而i 是先使用i的值後,再執行i i 1。例如 i 6a i i的值先變成7,再賦值給a,a的值才為7 b i ...
自增「 」和自減「 」
int x 10 int j j x 看這邊 system.out.println x int x 10 int j x x 看這邊 system.out.println x 第乙個會輸出11,第二個會輸出10。這是今天偶然看到的,而這個解釋聽起來比較容易理解 x 是乙個表示式,它的值是x,在這個表...
C語言 自增( ) 自減( )運算
1.作用 自增運算使單個變數的值增 自減運算使單個變數的值減 2.用法與運算規則 自增 自減運算子都有兩種用法 1 前置運算 運算子放在變數之前 變數 變數 先使變數的值增 或減 然後再以變化後的值參與其它運算,即先增減 後運算。2 後置運算 運算子放在變數之後 變數 變數 變數先參與其它運算,然後...