C++面试题

当前位置: 面试问题网 > C++面试题 > 这段代码难道不该打印出56吗

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

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

【这段代码难道不该打印出56吗】相关文章

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

2. 求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")

3. 请说出这段代码执行后a和b的值分别是多少

4. 编程实现当输入某产品代码则打印出该产品记录的功能

5. 如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗

6. 继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?

7. 将一个文本文件的内容按倒序打印出来

8. 如何打印出当前源文件的文件名以及源文件的当前行号

9. main 主函数执行完毕后,是否可能会再执行一段代码,给出说明

10. 代码中finally中的代码会不会执行

本文来源:https://www.mianshiwenti.com/a13188.html

点击展开全部

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

将本文的Word文档下载到电脑,方便收藏和打印

推荐程度:

进入下载页面

﹝这段代码难道不该打印出56吗﹞相关内容

其它栏目

也许您还喜欢