gpt4 book ai didi

c++ - 变量自身初始化

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:07:16 25 4
gpt4 key购买 nike

写这样的代码安全吗?

#include <iostream>

int main()
{
int x = x-x;// always 0
int y = (y)? y/y : --y/y // always 1
}

我知道有未定义的行为,但在这种情况下它不只是一个垃圾值吗?如果是,则相同值减相同值始终为 0,相同值除以自身(不包括 0)始终为 1。如果不想使用整型文字,这很重要,不是吗? (佯攻敌人)

最佳答案

请允许我演示未定义行为的邪恶魔法:

给出:

#include <iostream>

int main()
{
using namespace std;
int x = x-x;// always 0
int y = (y)? y/y : --y/y; // always 1

cout << x << ", " << y << endl;

return 0;
}

apple clang,用-O3编译:

输出:

1439098744, 0

未定义是未定义。上面代码中的注释是谎言,这会让您的随机数生成器的 future 维护者感到困惑;-)

关于c++ - 变量自身初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34567690/

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