//int a = 5; //int b = a++; //a = a + 1; 后自增 先运算,后加1 //int b = ++a; //a = a + 1; 前自增 先加1,后运算 //printf("a = %d,b = %d",a,b); int a = 5; //int b = a--; //a = a - 1; 后自减 先运算,后减1 int b = --a; //a = a - 1; 前自减 先减1,后运算 printf("a = %d,b = %d",a,b);
//例题:判断输出结果
int a = 12, b = 1; int c = a - (b--); // ① int d = (++a) - (--b); // ② printf("c=%d, d=%d ", c, d);
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。