11-什么是真
6.3.1 什么是真
这是一个古老的问题,但是对C而言还不算难。在C中,表达式一定有一个值,关系表达式也不例外。程序清单6.6中的程序用于打印两个关系表达式的值,一个为真,一个为假。
程序清单6.6 t_and_f.c 程序
/* t_and_f.c -- C中的真和假的值 */
#include <stdio.h>
int main(void)
{
int true_val, false_val;
true_val = (10 > 2); // 关系为真的值
false_val = (10 == 2); // 关系为假的值
printf("true = %d; false = %d \n", true_val, false_val);
return 0;
}
程序清单6.6把两个关系表达式的值分别赋给两个变量,即把表达式为真的值赋给 true_val ,表达式为假的值赋给 false_val 。运行该程序后输出如下:
true = 1; false = 0
原来如此!对C而言,表达式为真的值是1,表达式为假的值是 0 。一些C程序使用下面的循环结构,由于 1 为真,所以循环会一直进行。
while (1)
{
...
}