《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
------`

相关文章
|
29天前
|
自然语言处理 算法 前端开发
C++与Doxygen:精通代码文档化之道
C++与Doxygen:精通代码文档化之道
49 0
|
1月前
|
存储 算法 C++
【C/C++ Vector容量调整】理解C++ Vector:Reserve与Resize的区别与应用
【C/C++ Vector容量调整】理解C++ Vector:Reserve与Resize的区别与应用
51 1
|
1月前
|
编译器 C++ Python
【C/C++ 泡沫精选面试题02】深拷贝和浅拷贝之间的区别?
【C/C++ 泡沫精选面试题02】深拷贝和浅拷贝之间的区别?
32 1
|
30天前
|
Linux 编译器 程序员
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
68 0
|
1天前
|
设计模式 存储 Java
C++从入门到精通:3.5设计模式——提升代码可维护性与可扩展性的关键
C++从入门到精通:3.5设计模式——提升代码可维护性与可扩展性的关键
|
2天前
|
C++
【C++】在使用代码组装URL时,一定要注意的坑......
【C++】在使用代码组装URL时,一定要注意的坑......
7 0
|
17天前
|
Java 关系型数据库 MySQL
大厂面试题详解:Java抽象类与接口的概念及区别
字节跳动大厂面试题详解:Java抽象类与接口的概念及区别
40 0
|
22天前
|
存储 JSON Java
面试官:Session和JWT有什么区别?
JSON Web Token (JWT) 是一种开放标准,用于安全地在网络上传输信息。JWT 包含头部、载荷和签名三部分,常用于身份验证和授权。与Session相比,JWT有以下优势:无服务器存储状态,支持跨域,适应微服务架构,自包含且可扩展。在Java开发中,可以使用HuTool框架操作JWT,包括生成、验证和解析Token。JWT通过在客户端存储令牌实现无状态认证,与Session的主要区别在于工作原理、存储方式和有效期管理。
32 6
|
23天前
|
C语言 C++ 容器
C调用C++代码
C调用C++代码
12 1
|
29天前
|
算法 程序员 C语言
C++设计哲学:构建高效和灵活代码的艺术
C++设计哲学:构建高效和灵活代码的艺术
60 1