gpt4 book ai didi

c - C中的增量运算符

转载 作者:太空狗 更新时间:2023-10-29 15:14:19 25 4
gpt4 key购买 nike

我尝试了以下代码片段:

void main()
{
int x = 1,y = 1,z = 1;
++x || ++y && ++z;
printf("x = %d\ny = %d\nz = %d\n",x,y,z);
}

预期的输出是:

x = 2
y = 2
z = 2

但是我得到了输出:

x = 2
y = 1
z = 1

这是什么原因?

最佳答案

这是因为短路。

http://en.wikipedia.org/wiki/Short-circuit_evaluation

评估时:

++x || ++y && ++z;

第一部分 ++x 已经确定了整个表达式的值。所以 ++y &&++z 根本没有执行。所以 ++y++z 的副作用不会被调用。

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

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