我遇到了这段代码。我一般使用 '&&' 或 '||' 在for
循环中分隔多个条件,但此代码使用逗号来执行此操作。
令人惊讶的是,如果我改变条件的顺序,输出会发生变化。
#include<stdio.h>
int main() {
int i, j=2;
for(i=0; j>=0,i<=5; i++)
{
printf("%d ", i+j);
j--;
}
return 0;
}
输出 = 2 2 2 2 2 2
#include<stdio.h>
int main(){
int i, j=2;
for(i=0; i<=5,j>=0; i++)
{
printf("%d ", i+j);
j--;
}
return 0;
}
输出 = 2 2 2
有人可以解释原因吗?它似乎只检查最后一个逗号分隔的条件。