gpt4 book ai didi

c - C 中关系运算符的前缀与后缀。运算符结合性如何影响?

转载 作者:行者123 更新时间:2023-11-30 18:27:45 25 4
gpt4 key购买 nike

根据结合性规则,++prefix是从右到左结合,而postfix++是从左到右结合。在下面的代码中,我尝试了这两个选项以及关系 (<) 检查。但我收到的答案似乎违反直觉。有人可以帮我解决这个问题吗?

在此声明中:

(++i < 5)

我希望如此

"++i"

首先被解释,因为它具有从右到左的关联性并且优先级高于“<”,然后是

"++i < 5" 

待解释。相反,情况恰恰相反。下面是我用来尝试这个的完整程序。

#include <stdio.h>

int main(){
int i = 0, j = 0;
while (++i < 5)
{
printf("%d ", i);
}
puts("");
while (j++ < 5)
{
printf("%d ", j);
}


return 0;
}

我收到该程序的以下输出:

1 2 3 4
1 2 3 4 5

最佳答案

++i < 5++i确实是先评价的。我不知道你为什么认为这没有发生。

j++ < 5 ,表达式 j++ 的值也首先计算,但表达式的值是预先递增的值(并且增量实际上可能会稍后发生,但这是另一个故事)。 j++很像 (++j - 1) .

关于c - C 中关系运算符的前缀与后缀。运算符结合性如何影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52885350/

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