我被困在这个 c 程序的练习中,在 C for 循环中有一个逗号,如果,我,用&&它替换它的工作原理相同
for(i = 5, j = i - 1 ; i > 0 , j > 0 ; --i ,j = i - 1)
printf("\n%d",i);
Run Code Online (Sandbox Code Playgroud)
在这个循环中,我得到了如何,for( i = 5,j = i - 1 ; ? ; --i ,j= i - 1)但?我不明白它是如何工作的 1,1 = true ?1,0 = 假?C 是一种技巧,这就是为什么喜欢它 3> 你能解释我这部分是如何工作的吗
但部分在哪里?我不明白它是如何工作的
C 中的逗号运算符先计算逗号前的表达式,然后计算逗号后的表达式,然后返回逗号后表达式的值。所以1, 0C 中表达式的值是0。的结果1, 1是1。的结果foo(x), bar(x)是 的值bar(x)。
这并不经常出现,因为在实践中,逗号运算符并不经常使用。它可以在少数情况下派上用场,比如在for或while您可能希望通过每一次循环中来操纵多个可变环。但一般来说,将表达式与逗号运算符结合只会产生关于如何评估这些表达式、整个表达式的结果是什么等方面的不确定性。只要可能,将表达式分开并一次执行一个。
为什么我的 for 循环适用于“&&”而不适用于“,”
该&&运算符组合(使用逻辑 AND)两个表达式的结果,而不是丢弃第一个表达式的结果,因此根据表达式,您可以获得与使用,. 1 ? 0并1 ? 1为两者给出相同的结果,,&&因为 的结果&&取决于两种情况下的第二个表达式。但是0 ? 0and0 ? 1会给出不同的结果——,再次返回第二个表达式的值,并&&返回0因为两个表达式都被考虑并且0 AND anything都是 0。