gpt4 book ai didi

c - C 中预增量运算符的意外行为

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

   #include <stdio.h>
void main()
{
int i = -3, j=2, k=0, m;
m= ++i|| ++j && ++k;
printf("%d%d%d%d", i, j, k, m);
}

如果我们在 ++i|| 中看到求值顺序++j &&++k; 我们将首先对 ++j &&++k 求值,它会递增 j 和 k 的值,之后求值为 1那++i || 1 将评估哪个将增加 i 的值并将 1 分配给 m 因此输出应为 -2 3 1 1 但它给出输出 -2 2 0 1我想我在这里遗漏了一些概念。

最佳答案

||&& 是短路运算符。如果不需要确定输出,它们不会评估第二个操作数。

此处,++i 的计算结果为非零值,在 bool 上下文中为 true。右侧根本不计算。

关于c - C 中预增量运算符的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20780309/

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