gpt4 book ai didi

c++ - 从 x?y :z expression 得到了意想不到的答案

转载 作者:IT老高 更新时间:2023-10-28 12:49:35 24 4
gpt4 key购买 nike

这是一个简单的 C++ 片段:

int x1 = 10, x2 = 20, y1 = 132, y2 = 12, minx, miny, maxx, maxy;
x1 <= x2 ? minx = x1, maxx = x2 : minx = x2, maxx = x1;
y1 <= y2 ? miny = y1, maxy = y2 : miny = y2, maxy = y1;
cout << "minx=" << minx << "\n";
cout << "maxx=" << maxx << "\n";
cout << "miny=" << miny << "\n";
cout <<" maxy=" << maxy << "\n";

我认为结果应该是:

minx=10
maxx=20
miny=12
maxy=132

但实际上结果是:

minx=10
maxx=10
miny=12
maxy=132

有人能解释一下为什么 maxx 不是 20 吗?谢谢。

最佳答案

由于运算符优先级,表达式解析如下:

(x1<=x2 ? minx=x1,maxx=x2 : minx=x2), maxx=x1;

你可以解决这个问题:

(x1<=x2) ? (minx=x1,maxx=x2) : (minx=x2, maxx=x1);

实际上你不需要前两对括号。 Also check this question .

关于c++ - 从 x?y :z expression 得到了意想不到的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16629163/

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