【发布时间】:2013-05-07 10:02:53
【问题描述】:
假设这个while循环:
while ((c = getchar()) != EOF)
^^^^^^^^^^^^^
assignment
如您所见,我们要将分配与EOF 进行比较,这是怎么发生的?据我所知,赋值不会返回任何值,因此您无法比较赋值(对吗?)
【问题讨论】:
-
赋值通常返回值:您可以将其用于“a = b = c = 0;”或在您的示例中的条件...
-
它是一个表达式,而不仅仅是 C 语言中的赋值。
-
你需要习惯(子)表达式的值和副作用的概念。
c = getchar()的 值 基本上是用户输入的内容; 副作用正在改变c的值。 -
(对吗?)错了!它确实返回一个值
标签: c if-statement