这段代码难道不该打印出56吗


Posted in 面试题 onFebruary 27, 2013
使用我的编译器,下面的代码int i=7; printf(“%d\n”, i++ *i++); 返回49?不管按什么顺序计算, 难道不该打印出56吗?
尽管后缀自加和后缀自减操作符++ 和– 在输出其旧值之后才会执行运算,但这里的“之后”常常被误解。没有任何保证确保自增或自减会在输出变量原值之后和对表达式的其它部分进行计算之前立即进行。也不能保证变量的更新会在表达式“完成” (按照ANSI C 的术语, 在下一个“序列点” 之前, 参见问题3.7) 之前的某个时刻进行。本例中, 编译器选择使用变量的旧值相乘以后再对二者进行自增运算。
包含多个不确定的副作用的代码的行为总是被认为未定义。(简单而言, “多个不确定副作用” 是指在同一个表达式中使用导致同一对象修改两次或修改以后又被引用的自增, 自减和赋值操作符的任何组合。这是一个粗略的定义; 甚至都不要试图探究这些东西在你的编译器中是如何实现的(这与许多C 教科书上的弱智练习正好相反); 正如K&R 明智地指出, “如果你不知道它们在不同的机器上如何实现, 这样的无知可能恰恰会有助于保护你。”

Tags in this post...

面试题 相关文章推荐
枚举和一组预处理的#define有什么不同
Sep 21 面试题
什么是Rollback Segment
Apr 22 面试题
什么是WEB控件?使用WEB控件有哪些优势?
Jan 21 面试题
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
Oct 29 面试题
进程的查看和调度分别使用什么命令
Mar 25 面试题
常用UNIX 命令(Linux的常用命令)
Dec 26 面试题
介绍一下grep命令的使用
Jun 28 面试题
软件测试面试题
Oct 21 面试题
用Python写一个for循环的例子
Jul 19 面试题
初始化了一个没有run()方法的线程类,是否会出错?
Mar 27 面试题
J2EE面试题
Mar 14 面试题
Java面试题冲刺第十七天--基础篇3
Aug 07 面试题
枚举和一组预处理的#define有什么不同
Sep 21 #面试题
extern在函数声明中是什么意思
Jan 19 #面试题
strstr()的简单实现
Sep 26 #面试题
程序运行正确, 但退出时却"core dump"了,怎么回事
Feb 19 #面试题
怎样从/向数据文件读/写结构
Nov 23 #面试题
如何向接受结构参数的函数传入常数值
Feb 17 #面试题
华为c/c++笔试题
Jan 25 #面试题
You might like
PHP 程序员的调试技术小结
2009/11/15 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
中止javascript执行的方法
2014/02/14 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
提交按钮的name='submit'引起的js失效问题及原因
2015/02/25 Javascript
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
Python+Socket实现基于UDP协议的局域网广播功能示例
2017/08/31 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
使用Python写一个小游戏
2018/04/02 Python
python logging模块的使用总结
2019/07/09 Python
Python 如何提高元组的可读性
2019/08/26 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
工程招投标邀请书
2014/01/30 职场文书
医学生毕业自我鉴定
2014/03/26 职场文书
物流专业自荐信
2014/05/23 职场文书
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
2016年社区国庆节活动总结
2016/04/01 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript