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 關注
- 872 瀏覽
添加回答
舉報