《C和C++程序员面试秘笈》——1.3 看代码写输出—i++和++i的区别

本节书摘来自异步社区出版社《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
------`

上一篇:如何发现异常商业数据?达摩院用这套算法


下一篇:Leetcode 1509. Minimum Difference Between Largest and Smallest Value in Three Moves [Python]