我在维基百科上发现了这段代码。
#include <stdio.h>
int main(void)
{
int c;
while (c = getchar(), c != EOF && c != 'x')
{
switch (c)
{
case '\n':
case '\r':
printf ("Newline\n");
break;
default:
printf ("%c",c);
}
}
return 0;
}
我对在while循环中用作条件的表达式很好奇:
while (c = getchar(), c != EOF && c != 'x')
它的作用非常明显,但我以前从未见过这种结构。这是专门针对 while 循环的吗?如果不是,解析器/编译器如何确定逗号分隔表达式的哪一侧返回布尔值给 while 循环?