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

面试题 相关文章推荐
C语言变量的命名规则都有哪些
Dec 27 面试题
类成员函数的重载、覆盖和隐藏区别
Jan 27 面试题
如何在Oracle中查看各个表、表空间占用空间的大小
Oct 31 面试题
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
Apr 03 面试题
.NET面试10题
Feb 24 面试题
渗透攻击的测试步骤
Jun 07 面试题
介绍一下Linux中的链接
May 28 面试题
几个常见的软件测试问题
Sep 07 面试题
恒华伟业笔试面试题
Feb 26 面试题
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
Nov 18 面试题
Unix/Linux开发面试题
Aug 16 面试题
Servlet如何得到客户端机器的信息
Oct 17 面试题
枚举和一组预处理的#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 ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
php+mysql实现简单的增删改查功能
2015/07/13 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
Javascript this指针
2009/07/30 Javascript
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
zShowBox 图片放大展示jquery版 兼容性
2011/09/24 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
ajax在兼容模式下失效的快速解决方法
2016/03/22 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
详解如何理解vue的key属性
2019/04/14 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
js实现抽奖功能
2020/11/24 Javascript
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
python技能之数据导出excel的实例代码
2017/08/11 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
大学校园毕业自我鉴定
2014/01/15 职场文书
乡镇干部先进事迹材料
2014/02/03 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
婚前协议书范本
2014/10/27 职场文书
地陪导游欢迎词
2015/01/26 职场文书
教师党员自我评价2015
2015/03/04 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang