gpt4 book ai didi

c++ - 以下代码的输出是什么(答案因不同的编译器而异)?

转载 作者:行者123 更新时间:2023-11-30 05:15:45 30 4
gpt4 key购买 nike

#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/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com