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

面试题 相关文章推荐
J2SDK1.5与J2SDK5.0有什么区别
Sep 19 面试题
几个人围成一圈的问题
Sep 26 面试题
怎样声明子类
Jul 02 面试题
神路信息Java面试题目
Mar 31 面试题
西部世纪面试题
Dec 05 面试题
你对IPv6了解程度
Feb 09 面试题
能否解释一下XSS cookie盗窃是什么意思
Jun 02 面试题
软件缺陷的分类都有哪些
Aug 22 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
Nov 04 面试题
设计模式的基本要素是什么
Apr 21 面试题
什么是会话Bean
May 14 面试题
Java面试题:说出如下代码的执行结果
Oct 30 面试题
枚举和一组预处理的#define有什么不同
Sep 21 #面试题
extern在函数声明中是什么意思
Jan 19 #面试题
strstr()的简单实现
Sep 26 #面试题
程序运行正确, 但退出时却"core dump"了,怎么回事
Feb 19 #面试题
怎样从/向数据文件读/写结构
Nov 23 #面试题
如何向接受结构参数的函数传入常数值
Feb 17 #面试题
华为c/c++笔试题
Jan 25 #面试题
You might like
用来解析.htpasswd文件的PHP类
2012/09/05 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
JavaScript Chart 插件整理
2010/06/18 Javascript
javascript object array方法使用详解
2012/12/03 Javascript
JS禁用浏览器退格键实现思路及代码
2013/10/29 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
JavaScript数组合并的多种方法
2016/05/22 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
Angularjs CURD 详解及实例代码
2016/09/14 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
vue实现图书管理系统
2020/12/29 Vue.js
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
python生成随机mac地址的方法
2015/03/16 Python
详解Python爬虫的基本写法
2016/01/08 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
Python continue继续循环用法总结
2018/06/10 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
Form表单及django的form表单的补充
2019/07/25 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
HTML5 canvas 基本语法
2009/08/26 HTML / CSS
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
一套PHP的笔试题
2013/05/31 面试题
就业自荐书
2013/12/05 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
实习报告怎么写
2019/06/20 职场文书
将Python代码打包成.exe可执行文件的完整步骤
2021/05/12 Python
Linux7.6二进制安装Mysql8.0.27详细操作步骤
2021/11/27 MySQL