(一)
先动手编写一个程序:
1
2
3
4
5
6
7
8
9
10
11
|
#include <stdio.h> int main() { if (1) { printf ( "The condition is true!\n" ); } return 0; } |
运行结果:
The condition is true!
再把1依次改为,2,5,100,-10,发现运行结果完全一样。
再改成if(0),此时发现没有运行结果,说明printf()语句没被执行。
C语言把判断语句中的任何非0或非空的值当作真。所以if(1), if(2), if(5), if(100), if(-10)的效果是一样的。
(二)
再编写一个程序:
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <stdio.h> int main() { int a = 100; if (a > 0) { printf ( "The condition value is %d\n" , (a > 0)); } return 0; } |
运行结果:
The condition value is 1
分析:
a = 100,a > 0成立 ,所以if( a > 0)等价于if(1)。
在C语言中,判断语句是有值的,要么为1,要么为0。比如本程序中a > 0的值就是1。
(三)
最后编写一个程序:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#include <stdio.h> int main() { char c1 = '\0' ; if (c1) { printf ( "The condition is true!\n" ); } else { printf ( "The condition is false!\n" ); } char c2 = ' ' ; if (c2) { printf ( "The condition is true!\n" ); } else { printf ( "The condition is false!\n" ); } char c3 = 'A' ; if (c3) { printf ( "The condition is true!\n" ); } else { printf ( "The condition is false!\n" ); } return 0; } |
运行结果:
1
2
3
|
The condition is false! The condition is true! The condition is true! |
说明:C语言中用'\0'来表示空字符。空格' ‘也是一个字符,这从if(c2)条件为真就可以看出来。
原文链接:http://www.jianshu.com/p/f3e04955d987