#include <stdio.h> /* count lines in input */ main() { int c, nl; nl = 0; while ((c = getchar ()) != EOF) if (c == '
' ) ++nl; printf ( "%d
" , nl); } |
在该程序中,while 循环语句的循环体是一个 if 语句,它控制自增语句++nl。if 语句先测试圆括号中的条件,如果该条件为真,则执行其后的语句(或括在花括号中的一组语句)。这里再次用缩进方式表明语句之间的控制关系。
双等于号==是 C 语言中表示“等于”关系的运算符(类似于 Pascal 中的单等于号=及 Fortran 中的.EQ.)。由于 C 语言将单等于号=作为赋值运算符,因此使用双等于号==表示相等的逻辑关系,以示区分。这里提醒注意,在表示“等于”逻辑关系的时候(应该用==),C 语言初学者有时会错误地写成单等于号=。在后面我们将看到,即使这样误用了,其结果通常仍然是合法的表达式,因此系统不会给出警告信息。
单引号中的字符表示一个整型值,该值等于此字符在机器字符集中对应的数值,我们称之为字符常量。但是,它只不过是小的整型数的另一种写法而已。例如,'A'是一个字符常量;在 ASCII 字符集中其值为 65(即字符 A 的内部表示值为 65)。当然,用'A'要比用 65 好,因为。'A'的意义更清楚,且与特定的字符集无关。