gpt4 book ai didi

c++ - 为什么 “k” 语句中的 “m =++i ||++j &&++k” 没有递增?

转载 作者:太空宇宙 更新时间:2023-11-04 05:02:06 25 4
gpt4 key购买 nike

<分区>

第一部分:

i=j=k=1;
m = ++i && ++j || ++k;
printf("%d, %d, %d, %d\n", i, j, k, m);

输出:2, 2, 1, 1

第一部分简单易懂,这里++i && ++j首先执行,这是真的(并且增加 i 和 j 的值)所以不需要检查 OR 操作的下一部分(不需要增加 k 的值)。

第二部分:

i=j=k=1;
m = ++i || ++j && ++k;
printf("%d, %d, %d, %d\n", i, j, k, m);

输出:2, 1, 1, 1

第二部分容易理解,这里++i || ++j先执行,其中++i为真(并且增加了 i 的值,因为 OR 操作所以不需要增加 j 的值)。接下来在这里执行AND操作应该是k=2的增量值(但仍然是 k 打印 1 的值)。

亲爱的利他主义者,请解释一下第二部分发生了什么。

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