关于C语言中i++和++i的区别以及printf输出的一些问题。
2024-10-06 22:57:41
a_pos = a++; //后缀,使用a的值之后,递增a
b_pre = ++b; //前缀,使用b的值之前,递增b
a--和--b同理,不必赘述。这是几乎每个学习过C语言的同学都会知道的,而我在帮助一位“偷懒”的同学解答时,遇到了如下问题。
这位同学将书上本该分开写的printf语句连在了一起写,出现了这样的问题,让我一时难以解答。
直觉告诉我有可能是printf语句的问题,于是我在网上搜了printf语句的详解:https://www.cnblogs.com/Ahair/p/5017050.html
身为菜鸡的我看完以后并没有解答我心中的疑惑,于是继续百度,终于让我在百度百科里找到了这句话让我有些明白了。
身为菜鸡的我本着打破沙锅问到底的精神更深入的去搜索,得到了这篇博客对于printf为何是从右到左压栈的解答:https://blog.csdn.net/jiange_zh/article/details/47381597
这样一来i++的输出结果反过来的问题似乎得到了解答,可是为啥++i的结果是一排12又让人陷入了困惑。
身为懒癌的我放弃了挣扎,询问了虫子师傅和黄兄,得到了如下解答,深感大佬的牛逼。
C语言在处理前置和后置时的方式不同:
在处理后置时:是将值放入临时量中,在输出时直接从临时量中取值
在处理前置时:是等运算完成后,直接从I的地址中取值
至此,解答完毕。
最新文章
- 自定义Sublime Text的图标
- Pyqt 获取动态生成的QLineEdit值
- DOM操作优化
- AsyncTask实现断点续传
- python 二进制读写文件
- Spring事务注解@Transactional回滚问题
- mysql 执行计划的理解
- ylbtech-dbs:ylbtech-PurpleBill(票据管理系统)
- SQL Server 2008数据类型
- Objective-C中的封装、继承、多态、分类
- 13. vs2010 ClientID bug处理
- Hyper-V虚拟机和主机的网络配置
- 解决:eclipse导入android时工程下没有R文件的问题,以及style.xml文件报错
- Delphi中获取某类的祖先类及其所在单元名称(使用GetTypeData(PClass.ClassInfo)函数,并且该类是从TPersistent类的派生类才可以这么使用)
- HDU 3829 Cat VS Dog
- web框架前言与学生数据库系统(附1.0源码)
- Oracle 中PLSQL的ftp应用
- unity解压缩zip发布后的一些问题
- SQL查询,关联查询的区别 (LEFT JOIN 、LEFT OUTER JOIN、INNER JOIN)
- struct详解
热门文章
- 5. SOFAJRaft源码分析— RheaKV中如何存放数据?
- NOIP模拟 22
- Tomcat性能调优实战
- 8*8LED点阵
- 易初大数据 2019年11月14日 spss笔记 王庆超
- mybatis调用mysql的存储过程(procedure),实现查询操作(student表中的某个年级中的总人数 select (1) 或者 select (*))
- SSE图像算法优化系列三十:GIMP中的Noise Reduction算法原理及快速实现。
- 详解Vue 方法与事件处理器
- phpStudy中MySQL版本升级到5.7.17方法
- MySql——使用where子句过滤数据