3 回答

TA贡献1963条经验 获得超6个赞
cout << a++ << a;
std::operator<<(std::operator<<(std::cout, a++), a);
a
std::operator<<(std::cout, a++)
C+17更新
在移位运算符表达式中 E1<<E2
和 E1>>E2
的每一个值计算和副作用 E1
的值计算和副作用之前对 E2
.
b
01
.

TA贡献1802条经验 获得超5个赞
std::cout.operator<<( a++ ).operator<<( a );
a++
std::ostream::operator<<
a
std::ostream::operator<<
a++
a
a++
operator<<
a
operator<<
operator<<
除注意到的情况外,未具体说明单个运算符操作数的计算顺序和个别表达式的子表达式,以及产生副作用的顺序。在前一个序列点和下一个序列点之间,标量对象最多应该通过表达式的计算修改其存储值一次。此外,只能访问先前的值来确定要存储的值。对于一个完整表达式的子表达式的每一个允许的顺序,都应满足本款的要求;否则,该行为是不明确的。
a++
, a
operator<<
operator<<
a
(a++
a
- 3 回答
- 0 关注
- 839 浏览
添加回答
举报