这段代码难道不该打印出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...

面试题 相关文章推荐
说出一些常用的类,包,接口
Sep 22 面试题
介绍一下SQL Server里面的索引视图
Jul 31 面试题
一套SQL笔试题
Aug 14 面试题
上海某公司.net方向笔试题
Sep 14 面试题
杭州龙健科技笔试题.net部分笔试题
Jan 24 面试题
武汉高蓝德国际.net机试
Jun 24 面试题
武汉东之林科技有限公司机试
Sep 17 面试题
用C#语言写出在本地创建一个UDP接收端口的具体过程
Feb 22 面试题
如何进行Linux分区优化
Feb 12 面试题
如何开启linux的ssh服务
Jun 03 面试题
同步和异步有何异同,在什么情况下分别使用他们
Apr 09 面试题
枚举和一组预处理的#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 minixml详解
2008/07/19 PHP
php使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
纯JavaScript手写图片轮播代码
2016/10/20 Javascript
javascript实现二叉树遍历的代码
2017/06/08 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
jquery实现点击弹出对话框
2020/02/08 jQuery
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
对python的文件内注释 help注释方法
2018/05/23 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
python 多个参数不为空校验方法
2019/02/14 Python
python 项目目录结构设置
2020/02/14 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
keras自动编码器实现系列之卷积自动编码器操作
2020/07/03 Python
python 下划线的不同用法
2020/10/24 Python
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
父母对孩子说的话
2014/04/12 职场文书
领导欢迎词致辞
2015/01/23 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
科级干部培训心得体会
2016/01/06 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL
Java获取字符串编码格式实现思路
2022/09/23 Java/Android