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

面试题 相关文章推荐
如何配置、使用和清除Smarty缓存
Dec 23 面试题
Tomcat中怎么使用log4j输出所有的log
Jul 07 面试题
介绍一下Transact-SQL中SPACE函数的用法
Sep 01 面试题
叙述DBMS对数据控制功能有哪些
Jun 12 面试题
武汉世纪畅想数字传播有限公司.NET笔试题
Jul 22 面试题
params有什么用
Mar 01 面试题
如何在C# winform中异步调用web services
Sep 21 面试题
简述进程的启动、终止的方式以及如何进行进程的查看
Feb 20 面试题
如果让你测试一台高速激光打印机,你都会进行哪些测试
Dec 04 面试题
百度软件工程师职位
Feb 14 面试题
过滤器的用法
Oct 08 面试题
值传递还是引用传递
Feb 08 面试题
枚举和一组预处理的#define有什么不同
Sep 21 #面试题
extern在函数声明中是什么意思
Jan 19 #面试题
strstr()的简单实现
Sep 26 #面试题
程序运行正确, 但退出时却"core dump"了,怎么回事
Feb 19 #面试题
怎样从/向数据文件读/写结构
Nov 23 #面试题
如何向接受结构参数的函数传入常数值
Feb 17 #面试题
华为c/c++笔试题
Jan 25 #面试题
You might like
PHP5 字符串处理函数大全
2010/03/23 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
javascript Math.random()随机数函数
2009/11/04 Javascript
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
2010/03/27 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
javascript 将共享属性迁移到原型中去的实现方法
2016/08/31 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
Vue computed计算属性的使用方法
2017/07/14 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
node错误处理与日志记录的实现
2018/12/24 Javascript
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python中xrange和range的区别
2014/05/13 Python
python实现雪花飘落效果实例讲解
2019/06/18 Python
Python用Try语句捕获异常的实例方法
2019/06/26 Python
python中property属性的介绍及其应用详解
2019/08/29 Python
python logging模块的使用
2020/09/07 Python
linux面试题参考答案(8)
2016/04/19 面试题
乡镇庆八一活动方案
2014/02/02 职场文书
招商专员岗位职责
2014/02/08 职场文书
领导党性分析材料
2014/02/15 职场文书
小学新学期寄语
2014/04/02 职场文书
研究生导师推荐信
2014/09/06 职场文书
毕业横幅标语
2014/10/08 职场文书
自荐信格式范文
2015/03/04 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书
Python实现生成bmp图像的方法
2021/06/13 Python
数据设计之权限的实现
2022/08/05 MySQL