我遇到了这段代码.我通常使用'&&'或'||' 在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;
}
Run Code Online (Sandbox Code Playgroud)
输出= 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;
}
Run Code Online (Sandbox Code Playgroud)
输出= 2 2 2
有人能解释一下原因吗?它似乎只检查最后一个以逗号分隔的条件.