有关printf(p+1),printf(p++),printf(++p)的相关理解

简介: 有关printf(p+1),printf(p++),printf(++p)的相关理解

先看代码


   int p = 1;

   printf("%d\n", p + 1 );

   printf("%d\n", p);

   printf("%d\n", p ++ );

   printf("%d\n", p );

   printf("%d\n", ++p);

   printf("%d\n", p);


输出结果为2,1,1,2,3,3


为什么是这样的结果呢?


第一二个结果不同是因为,在printf打印的时候,p的值先存入一个临时空间,再让临时空间+1,最后打印临时空间中的值。所以p内部实际值不变。


而第三个和第四个不同的原因,是先将p的值存入临时空间,将临时空间中的值打印,再对p的实际值改变,所以第四个打印的是2。


而第五个和第六个相同的原因,是因为先将p进行了从2自增到3的过程,再将p的值存入临时空间,将临时空间的值打印。

目录
相关文章
|
7月前
|
C语言
你真的学会了printf和scanf函数吗?
你真的学会了printf和scanf函数吗?
VS中出现的printf,scanf等函数不安全而报错的问题的全面解决方法
VS中出现的printf,scanf等函数不安全而报错的问题的全面解决方法
|
4月前
|
Shell C语言 开发者
printf命令
`printf`命令是Shell脚本和许多编程语言中强大的输出工具。它提供了广泛的数据格式化选项,使得输出更加灵活和精确。了解并熟练使用 `printf`能够大幅提升脚本和程序的输出质量,是每个开发者和系统管理员应该掌握的技能。
61 3
|
7月前
|
存储 数据格式
如何在51单片机实现scanf和printf
如何在51单片机实现scanf和printf
382 0
|
7月前
|
C语言
1.printf()2.scanf()
1.printf()2.scanf()
42 0
|
缓存
scanf和printf函数
scanf和printf函数
157 0
|
C语言
printf与scanf函数的返回值
printf与scanf函数的返回值
|
存储 Serverless C语言
printf()和scanf() (详解)
printf()和scanf() (详解)
178 0
C++(cout和printf的使用小结)
C++(cout和printf的使用小结)
|
IDE 编译器 开发工具
VS 调用 scanf 的正确姿势
VS 调用 scanf 的正确姿势
390 0
VS 调用 scanf 的正确姿势