BOOL类型
1、简介
在Xcode中的C工程中,只支持C89的标准,这里面是没有BOOL类型的;
在Xcode中的OC工程中,支持C99的标准,这里面是含有BOOL类型;
所以要使用BOOL类型,需在Xcode中建立OC工程。
BOOL类型包含两个值:真(Yes)、假(No),使用%d输出,YES:1,NO:0。
yes表示真,no表示假;一般的在C语言中,非0即为真。
bool包含两个值:真(true)、假(false)同样的他们也等于1、0。这是俗称的小bool,在IOS开发中很少用到,不做了解。
例:
BOOL r1 = YES;
BOOL r2 = NO;
printf("r1 = %d, r2 = %d \n", r1,r2);
运行结果:r1 = 1,r2 = 0
2、运用
2.1 BOOL类型用于关系运算
>、< 运算
BOOL r3 = 5 > 3;
printf("r3 = %d \n", r3);
BOOL r4 = 5 > 4 > 3; // 5>4为真,BOOL值为1,1>3为假,BOOL值为0
printf("r4 = %d \n", r4);
运行结果:r3 = 1 r4 = 0
>= 、<= 运算
BOOL r5 = 5 >= 5; // 只要符号两边满足一个条件就为真
printf("r5 = %d \n", r5);
运行结果:r5 = 1
==、!= 运算
BOOL r6 = 7 == 8;
printf("r6 = %d \n", r6);
BOOL r7 = 7 != 8;
printf("r7 = %d \n", r7);
运行结果:r6 = 0 r7 = 1
注意:浮点数不能使用此运算符比较是否相等,因为浮点数在存储时存在精度问题。整型和字符型可以使用。
2.2 BOOL类型用于逻辑运算
逻辑运算符 与 &&、或 ||、非 !
与 (&&) 一假为假 , 或(||) 一真为真 , 非(!)反转。
int a = 10;
int b = 20;
BOOL r1 = (a < b) && (b == 3);
printf("r1 = %d \n", r1);
BOOL r2 = (a == 3) || (b < a);
printf("r2 = %d \n", r2);
BOOL r3 = !(a > b);
printf("r3 = %d \n", r3);
BOOL r4 = (b < 5) && b++;
printf("r4 = %d, b = %d \n", r4, b);
运行结果:r1 = 0 r2 = 0 r3 = 1 r4 = 0 b = 20
注意:&& 中存在短路现象
当表达式1的结果为假时,逻辑与(&&)表达式的结果已经可以确定为假,所以表达式2不再执行.
同样,逻辑或(||)中也存在短路现象。
2.3 运算符的优先级顺序
一般的优先级关系: ( ) > ! > 算数运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符