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

标签 c for-loop

我被困在 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/

相关文章:

编译 PHP 扩展

python - 在zip对象上使用for循环时出现无效的语法错误

每 10 次循环的 Java 打印结果

r - 如果变量与数据框的列具有相同的名称,则 dplyr 过滤器不起作用

javascript - 如何在JavaScript中计算数组中从最后一个到第一个元素之间的差异?

c - 搜索号码

c - 如何在 PROMELA 中广播消息?

c - 如何检查c中32位有符号整数的整数溢出

c - 使用C语言进行Linux网络编程

r - 从R中的目录列表创建文件列表