我的朋友和我发现了一个有趣的笑话C > C++
因为他喜欢C over C ++。但是,我很好奇执行该代码段的有效性。我跑了并编译了
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";
使用C ++ 98 / C ++ 11输出为1 0 0 1,对Java使用true,false,false,false。
我的问题是这些陈述的评估过程如何运作?我特别困惑,因为C++ < C
和C > C++
在Java中相互矛盾,同时在C ++中保持一致,以及C++ < C
的逻辑,据说左侧和右侧相等或者左侧大于右侧。