简单的加减法运算问题

img

img

想问下为什么最后一个数是-9而不是7啊

i ++是先输出- i 的结果,再对i进行累加(是 i +1,不是- i ),所以-8的那一步中,i 实际上是+9,而下一步中,先输出 i 的相反数(-9),再对 i 进行-1的操作。
分析如下:

int i=8;
//i=8
printf("%d\n",++i);
//i=9,输出9
printf("%d\n",--i);
//i=8,输出8
printf("%d\n",i++);
//i=9,输出8
printf("%d\n",i--);
//i=8,输出9
printf("%d\n",-i++);
//i=9,输出-8
printf("%d\n",-i--);
//i=8,输出-9

-i--啊,前面是负号,自然是负数,怎么会是7呢

-i