本节书摘来自异步社区出版社《C和C++程序员面试秘笈》一书中的第1章,第1.3节,作者: 董山海,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.3 看代码写输出—i++和++i的区别
C和C++程序员面试秘笈
考点: i++和++i的区别
出现频率:
#include <stdio.h>
int main(void)
{
int i=8;
printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
printf("%d\n",-i++);
printf("%d\n",-i--);
printf("------\n");
return 0;
}```
【解析】
程序的说明如下:
程序第7行,此时i的值为8。这里先i自增1,再打印i的值。因此输出9,并且i的值也变为9。
程序第8行,此时i的值为9。这里先i自减1,再打印i的值。因此输出8,并且i的值也变为8。
程序第9行,此时i的值为8。这里先打印i的值,再i自增1。因此输出8,并且i的值也变为9。
程序第10行,此时i的值为9。这里先打印i的值,再i自减1。因此输出9,并且i的值也变为8。
程序第11行,此时i的值为8。这里的“-”表示负号运算符。因此先打印-i的值,再i自增1。因此输出-8,并且i的值也变为9。
程序第12行,此时i的值为9。这里的第一个“-”表示负号运算符,后面连在一起的两个“-”表示自减运算符。因此先打印-i的值,再i自减1。因此输出-9,并且i的值也变为8。
【答案】
9
8
8
9
-8
-9
------`