C语言的printf输出问题

看到这段代码的时候,想到这个printf输出的值是多少? 若您想到的答案是1-2,真的是这样吗?

#include <stdio.h>

int main(int argc, char *argv[]) {
	int i = 1;
	printf("%d-%d\r\n", i++, ++i);
	return 0;
}

先了解一个知识点:自增运算符i++ 和 ++i 的区别。
前缀自增运算符(++i), 它是先将i的值加1后,返回给表达式。
后缀自增运算符(i++),它也是将i的值加1,但是它是返回原始值给表达式,然后再将i的值增加1。

printf函数的输出列表,从右到左执行,从左到右输出

#include <stdio.h>

int main(int argc, char *argv[]) {
	int a, b, c;
	printf("%d-%d-%d\r\n", a = 1, b = 2, c = 3);
	return 0;
}

输出的结果1, 2, 3.
那我们来验证开始的那段代码。若你的答案是1-2?见证奇迹的时候到了
在这里插入图片描述
为啥是2-3呢?当printf遇到有计算的时候,他的执行顺序是从右到左的。
当前我们看到的是i++, ++i。然而是实际上它的顺序是++i,i++
你搞懂了吗?

相关推荐

  1. C语言——printf、scanf、其他输入输出函数

    2024-06-06 06:54:03       31 阅读
  2. C语言】/*printf 函数*/

    2024-06-06 06:54:03       31 阅读
  3. Go语言Print Printf Println区别

    2024-06-06 06:54:03       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 06:54:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 06:54:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 06:54:03       87 阅读
  4. Python语言-面向对象

    2024-06-06 06:54:03       96 阅读

热门阅读

  1. Kubernetes (K8s) 普及指南

    2024-06-06 06:54:03       26 阅读
  2. WEB三大主流框架之React

    2024-06-06 06:54:03       24 阅读
  3. Nuxt - middleware 路由中间件

    2024-06-06 06:54:03       30 阅读
  4. 007 异步同步

    2024-06-06 06:54:03       21 阅读
  5. DNS域名

    DNS域名

    2024-06-06 06:54:03      28 阅读
  6. oracle 核心进程

    2024-06-06 06:54:03       26 阅读
  7. Oracle通过datax迁移线上表到历史库

    2024-06-06 06:54:03       26 阅读
  8. [Mac软件]Leech for Mac v3.2 - 轻量级mac下载工具

    2024-06-06 06:54:03       23 阅读
  9. Oracle中clob怎么拼接字符

    2024-06-06 06:54:03       31 阅读
  10. 从0开始读C++Primer|第一章 开始

    2024-06-06 06:54:03       29 阅读