写出来编译一下就知道了..
1 /*#define TRUE 12 * #define FALSE 0
3 * 定义 int find
4 * 循环开始 find = FALSE
5 * 当 文件比较==0时 find = TRUE
6 * 之后判断
7 * if (!find)这个时候 的find是TRUE 还是FALSE啊?
8 * if (!find) 这个时候判断出来是1 还是0*/
9 #include<stdio.h>
10 #define TRUE 1
11 #define FALSE 0
12 int main(void)
13 {
14 int num, find
15 find = FALSE
16 while(scanf("%d", &num)==1)//输入数字否则退出.
17 {
18 if(num==0)
19 {
20 // find = TRUE printf("find=%d\t!find=%d", find, !find)//看find的值啊,如果是0那就是FALSE啊,是1find是TRUE
21 // 要是find = TRUE 下面就不会运行了.
22 if(!find) printf("find=%d\t!find=%d", find, !find)//看find的值啊,如果是0那就是FALSE啊,是1find是TRUE
23 }
24 else printf("文件不等于0.")
25 }
26 return 0
27 }
if( i != 1 || i != 2 || i != 3 || i != 4)因为i的初值为1,虽然i != 1为false,但后面的i != 2为ture,这个||运算后整个表达式的值就为true啊
C语言中没有像C++中那样的bool类型,在逻辑判断中,C认为一个值如果是非零就表示为真true,对这个值求逻辑非!,就是假false,比如说int a=5if(a)就表示是真,if(!a)就是假,!a的值是零,a的值不变。