a = a + 1;
或者a += 1;
不过,C语言还支持另外一种更加简洁的写法,就是:a++;
或者++a;
这种写法叫做自加或自增,意思很明确,就是每次自身加 1。a--
和--a
,它们叫做自减,表示自身减 1。++
和--
分别称为自增运算符和自减运算符,它们在循环结构(后续章节会讲解)中使用很频繁。#include <stdio.h> int main() { int a = 10, b = 20; printf("a=%d, b=%d\n", a, b); ++a; --b; printf("a=%d, b=%d\n", a, b); a++; b--; printf("a=%d, b=%d\n", a, b); return 0; }运行结果:
10++
就是错误的。#include <stdio.h> int main() { int a = 10, b = 20, c = 30, d = 40; int a1 = ++a, b1 = b++, c1 = --c, 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); return 0; }输出结果:
a1=++a
,先执行 ++a,结果为 11,再将 11 赋值给 a1,所以 a1 的最终值为11。而 a 经过自增,最终的值也为 11。b1=b++
,b 的值并不会立马加 1,而是先把 b 原来的值交给 b1,然后再加 1。b 原来的值为 20,所以 b1 的值也就为 20。而 b 经过自增,最终值为 21。c1=--c
,先执行 --c,结果为 29,再将 29 赋值给c1,所以 c1 的最终值为 29。而 c 经过自减,最终的值也为 29。d1=d--
,d 的值并不会立马减 1,而是先把 d 原来的值交给 d1,然后再减 1。d 原来的值为 40,所以 d1 的值也就为 40。而 d 经过自减,最终值为 39。a1=++a;
会先进行自增操作,再进行赋值操作;而b1=b++;
会先进行赋值操作,再进行自增操作。c1=--c;
和d1=d--;
也是如此。#include <stdio.h> int main() { int a = 12, b = 1; int c = a - (b--); // ① int d = (++a) - (--b); // ② printf("c=%d, d=%d\n", c, d); return 0; }输出结果:
a-b
运算,结果是 11,然后 b 再自减,就变成了 0;最后再将a-b
的结果(也就是11)交给 c,所以 c 的值是 11。d=(++a)-(--b)
,a 会先自增,变成 13,然后 b 再自减,变成 -1,最后再计算13-(-1)
,结果是 14,交给 d,所以 d 最终是 14。
本文链接:http://task.lmcjl.com/news/8019.html