我的朋友和我遇到了一个有趣的笑话C > C++
,因为他喜欢C over C++。但是,我很好奇执行该代码段的有效性。我跑和输出被1 0 0 1使用C++ 98/C++编译11邮政运营商评估订单
int C;
C = 1;std::cout << (C++ < C) << "\n";
C = 1;std::cout << (C < C++) << "\n";
C = 1;std::cout << (C++ > C) << "\n";
C = 1;std::cout << (C > C++) << "\n";
,和真,假FALSE,FALSE为Java。
我的问题是这些陈述的评估过程如何工作?我特别困惑,因为C++ < C
和C > C++
在Java中相互矛盾,而在C++中保持一致,以及C++ < C
的逻辑,据推测左侧和右侧相等或左侧大于右侧。
互相矛盾如何? – 2014-10-09 04:39:42
这个问题的C++一半是重复的;其他一些语言定义它。 – o11c 2014-10-09 04:41:17
也https://stackoverflow.com/questions/949433/why-are-these-constructs-undefined-behavior – Boann 2014-10-09 04:43:02