为什么这样做

时间:2014-04-28 09:33:21

标签: c while-loop conditional-statements

无法找到更好的标题,因此如果您有更好的主意,请进行修改。

这是C中的while循环:

while ((c = getchar()) != EOF)

条件如何运作?

(c = getchar())如何分配表达式"返回"一个值,然后将其与EOF进行比较?

3 个答案:

答案 0 :(得分:1)

分配的表达式返回已分配的值。

当你这样做时:

((c = getchar()) != EOF)

您将指定的值与EOF进行比较。

答案 1 :(得分:1)

在C中,赋值表达式本身具有赋值的值。

此属性允许程序员应用与您提到的技术不同的技术,直接比较指定的值。

if ((a = f()) != 0) ....

或多项作业

a = b = f() 

答案 2 :(得分:1)

在C中,分配操作 en表达式,其值是赋值的结果。

例如a = 5是一个值为5的表达式。

((c = getchar()) != EOF调用getchar并将返回值放在c中,然后将结果(现在c} ='的内容与EOF进行比较。< / p>