ウィキペディアでこのコードを見つけました。
#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ループのブール値を返すかをどのように判断しますか?