运算符的计算


//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。