#include <iostream>
using namespace std;
int main(){
int j=0;
cout << ++j << j++ << j;
return 0;
}
据我所知,代码的输出必须是1 1 2,但是代码的输出是2 0 2,并且这个答案因编译器而异,因为我使用的是最新版本的gcc。但是当我使用turbo c编译器时,输出是不同的。
因此,请解释代码的后台工作。
最佳答案
cout << ++j << j++ << j;
此处根本没有指定“++ j”和“j ++”的执行顺序(它们都是函数运算符<未定义行为。在这条线上,任何事情都可能发生,并且无法保证结果。您可以阅读有关here的信息。
关于c++ - 以下代码的输出是什么(答案因不同的编译器而异)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42942452/