gpt4 book ai didi

c++ - 解释以下输出?

转载 作者:行者123 更新时间:2023-11-28 06:36:24 24 4
gpt4 key购买 nike

<分区>

请解释输出:

#include<iostream.h>
int main()
{
int i= -3, j=2, k=0, m;
m = ++i || ++j && ++k;
cout<< i <<" " << j << " " << k <<" "<<m;
return 0;
}

输出:-2 2 0 1

这是我的想法:(++i ||++j) && (++k)//考虑优先顺序++i 变​​成 -2 所以 OR 的第一部分为真,所以它不会检查第二部分。
(感谢 Joachim Pileborg 告诉我短路评估)

总的来说,AND 的第一部分是正确的。但这还不足以使陈述为真,第二部分必须为真。所以++k 使得 k = 1这是我弄错的地方。为什么k不增加?

然而,在这种情况下:

#include<iostream.h>
int main()
{
int i= -1, j=2, k=0, m;
m = ++i || ++j && ++k;
cout<< i <<" " << j << " " << k <<" "<<m;
return 0;
}

输出:0 3 1 1

考虑到短路评估,我也得到了这个。

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