这不是UB。
函数调用是一个sequence point,有4个串行的函数调用
std::cout::operator<<(j++)
std::cout::operator<<(j++)
std::cout::operator<<(++j)
std::cout::operator<<(++j)
msvc和gcc的结果都是1、2、4、5
【 在 fourwind 的大作中提到: 】
: int j=1;
: cout<<(j++)<<(j++)<<(++j)<<(++j);
: 我印象中在ms的vc里和gcc出来的结果不一样。所以我说不规范的代码里可能会出来不一致的结果;
: ...................
--
FROM 61.48.130.*