a += 1 等價 a = a + 1;C 提供更簡潔寫法:a++ 或 ++a(自增),a-- 或 --a(自減)。
10++ 錯誤)。| 形式 | 名稱 | 執行順序 |
|---|---|---|
++a | 前自增 | 先自增,再參與其他運算 |
a++ | 後自增 | 先參與其他運算,再自增 |
--a | 前自減 | 先自減,再參與其他運算 |
a-- | 後自減 | 先參與其他運算,再自減 |
#include <stdio.h>
#include <stdlib.h>
int main() {
int a=10, a1=++a;
int b=20, b1=b++;
int c=30, c1=--c;
int d=40, d1=d--;
printf("a=%d, a1=%d\n", a, a1);
printf("b=%d, b1=%d\n", b, b1);
printf("c=%d, c1=%d\n", c, c1);
printf("d=%d, d1=%d\n", d, d1);
system("pause");
return 0;
}
輸出:
a=11, a1=11
b=21, b1=20
c=29, c1=29
d=39, d1=40
a1=++a:先 ++a → 11,賦值給 a1,a 也變 11。b1=b++:先將 b 原值 20 賦給 b1,再 b 變 21。c1=--c:先 --c → 29,賦值給 c1,c 也變 29。d1=d--:先將 d 原值 40 賦給 d1,再 d 變 39。#include <stdio.h>
#include <stdlib.h>
int main() {
int a=12, b=1;
int c = a - (b--); // ①
int d = (++a) - (--b); // ②
printf("c=%d, d=%d\n", c, d);
system("pause");
return 0;
}
輸出:
c=11, d=14
a-b (12-1=11) → c,再 b-- → b 變 0。a 先 ++a → 13;b 先 --b → -1;計算 13-(-1)=14 → d。自增自減極常用,務必牢記前後綴差異,避免邏輯錯誤。