0 , j > 0 ; --i ,j -6ren">
gpt4 book ai didi

c - 为什么我的 for 循环适用于 "&&"而不适用于 ","

转载 作者:行者123 更新时间:2023-12-03 13:49:24 25 4
gpt4 key购买 nike

我被困在 C 程序的这个练习中,在 C for 循环中有一个逗号,如果,我替换 ,&&它的工作原理相同

for(i = 5, j = i - 1 ; i > 0 , j > 0 ; --i ,j = i - 1)
printf("\n%d",i);
在这个循环中,我得到了如何 for( i = 5,j = i - 1 ; ? ; --i ,j= i - 1)但是 ?的部分有没有我不明白它是如何工作的 1,1 = true ? 1,0 = 假? C 是一种技巧,这就是为什么喜欢它 3> 你能解释我这部分是如何工作的吗

最佳答案

but the part where ? is there i don't get how that is working


comma operator in C 计算逗号前的表达式,然后计算逗号后的表达式,然后返回逗号后表达式的值。所以表达式的值 1, 0在 C 中是 0 . 1, 1的结果是 1 . foo(x), bar(x)的结果是 bar(x) 的值.
这并不经常出现,因为在实践中,逗号运算符并不经常使用。它在少数情况下会很方便,例如 forwhile您可能希望每次通过循环操作多个变量的循环。但一般来说,将表达式与逗号运算符结合只会产生关于如何评估这些表达式、整个表达式的结果是什么等方面的不确定性。只要可能,将表达式分开并一次执行一个。

Why my for loop works with "&&" and not with ","

&&运算符组合(使用逻辑与)两个表达式的结果而不是丢弃第一个表达式的结果,因此根据表达式,您可以获得与 , 不同的结果。 . 1 ? 01 ? 1, 给出相同的结果和 &&因为 &&的结果在这两种情况下都取决于第二个表达式。但是 0 ? 00 ? 1会给出不同的结果 — ,再次返回第二个表达式的值, &&返回 0因为这两个表达式都被考虑并且 0 AND anything是 0。

关于c - 为什么我的 for 循环适用于 "&&"而不适用于 ",",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66605419/

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