gpt4 book ai didi

c++ - 为什么这个结合赋值和相等检查的 if 语句返回 true?

转载 作者:IT老高 更新时间:2023-10-28 11:26:53 27 4
gpt4 key购买 nike

我一直在考虑一些初学者的错误,最后我发现了 if 语句中的错误。我将代码扩展了一下:

int i = 0;
if (i = 1 && i == 0) {
std::cout << i;
}

我已经看到 if 语句返回 true,并且它 couti1。如果在if语句中将i赋值为1,为什么i == 0返回true

最佳答案

这与 operator precedence 有关.

if (i = 1 && i == 0)

不是

if ((i = 1) && (i == 0))

因为 &&== 的优先级都高于 =。它真正起作用的是

if (i = (1 && (i == 0)))

1 && (i == 0) 的结果分配给 i。所以,如果 i0 开始,那么 i == 0true,所以 1 && true true(或 1),然后 i 设置为 1。然后由于 1 为真,您输入 if block 并打印您分配给 i 的值。

关于c++ - 为什么这个结合赋值和相等检查的 if 语句返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56264674/

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