【发布时间】:2010-11-11 06:55:59
【问题描述】:
我found 维基百科上的这段代码。
#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 循环返回布尔值?
【问题讨论】:
-
不影响你的问题,只是标题,但是:c是在while循环中分配的,没有初始化。
-
那里 - 我已经改变了。谢谢。
标签: c initialization while-loop