c++ - 单个语句中的多个增量运算符

标签 c++ c post-increment unary-operator pre-increment

<分区>

Possible Duplicate:
Undefined Behavior and Sequence Points

请解释以下语句的行为

int b=3;
cout<<b++*++b<<endl;

如何计算?

最佳答案

这里的行为是未定义的。参见 this question

相关标准报价:

§5/4.1 在前一个和下一个序列点之间,标量对象的存储值最多应通过表达式的计算修改一次。

最常见的序列点是语句的结尾。

标准中还值得注意:

§5.2.2/8 未指定参数的计算顺序。

关于c++ - 单个语句中的多个增量运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6915963/

相关文章:

c++ - C/C++ mangle 以特定方式导出

c++ - 缩写类中定义的类型的全名

c++ - 循环中的前增量和后增量有什么区别(for/while)?

c++ - *p++ += 2 定义明确吗?

c - 输出是什么并解释如何?

c++ - 创建远程线程,错误5

c++ - std::is_invocable<...> 检查成员函数

c - 为什么这个c程序输出4?

Char* 函数从不返回值

c - 如何为我的 Gtk+ 应用程序设置默认主题?