后缀自加和后缀自减操作符++ 和--
来源:互联网 发布:编程员工资 编辑:程序博客网 时间:2024/04/28 16:12
使用我的编译器,下面的代码int i=7; printf("%d\n", i++ * i++); 返回49?不管按什么顺序计算, 难道不该打印出56吗?
尽管后缀自加和后缀自减操作符++ 和-- 在输出其旧值之后才会执行运算,但这里的“之后”常常被误解。没有任何保证确保自增或自减会在输出变量原值之后和对表达式的其它部分进行计算之前立即进行。也不能保证变量的更新会在表达式“完成”之前的某个时刻进行。本例中, 编译器选择使用变量的旧值相乘以后再对二者进行自增运算。
包含多个不确定的副作用的代码的行为总是被认为未定义。(简单而言, “多个不确定副作用” 是指在同一个表达式中使用导致同一对象修改两次或修改以后又被引用的自增, 自减和赋值操作符的任何组合。这是一个粗略的定义; 严格的定义参见问题3.7, “未定义” 的含义参见问题11.32。) 甚至都不要试图探究这些东西在你的编译器中是如何实现的(这与许多C 教科书上的弱智练习正好相反); 正如K&R 明智地指出, “如果你不知道它们在不同的机器上如何实现, 这样的无知可能恰恰会有助于保护你。”
0 0
- 后缀自加和后缀自减操作符++ 和--
- 自增、自减运算符的前缀和后缀
- 重载前缀和后缀自增操作符
- More Effective C++----(6)自增、自减操作符前缀形式和后缀形式的区别
- 【java解惑】前缀自增自减和后缀自增自减问题
- 自增(++)/自减(--)运算符的前缀和后缀
- 自增、自减运算符的前缀和后缀形式区别
- 自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别
- 自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别
- 3.自增自减操作符前缀形式与后缀形式的区别
- C++ 自增、自减操作符前缀与后缀的区别
- 【前缀自增/减++i】和【后缀自增/减i++】的区别
- 运算符和自加和自减运算符
- 自增和自减操作符
- 自增(++)和自减(--)操作符
- 运用c++中的运算符重载理解自加和自减操作
- 自加一,自减一 ( ++和- -)
- 自增自减操作符的前后缀,下标和解引用操作与自增自减一起使用,还有指针加减法的实现--围绕CheckedPtr类
- tomcat启动报错,找不到对应的 queue,从而引发内存泄漏
- \u Unicode和汉字转化
- eclipse 中的html 中的中文都是乱码
- 毕业5年决定人的一生-- 大家千万不要错过这篇文章
- 深入理解Java内存模型(二)——重排序
- 后缀自加和后缀自减操作符++ 和--
- ios8来了,屏幕更大,准备好使用 iOS Auto Layout了吗?
- Android ListView去除难看的默认背景色
- 1014. 福尔摩斯的约会 (20)
- 苹果新语言swift教程
- 工作记录---/lib和/usr/lib、/usr/local/lib区别
- java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path
- 苹果新语言swift教程
- 游戏引擎启示录