C语言漫谈(二)

一.布尔类型

需要注意的是在C 89中并没有布尔类型,只在C 99中存在.而 C 工程支持 C89 ,OC 工程支持C99

1.两种数值:
bool true (真) false(假) C 语言
BOOL YES (真) NO (假) OC语言

2.真和假的表示
C 语言 非 0 即为真 0就是假
OC语言 YES 定义为1 NO 定义为0

3.作用.
主要用于分支语句和循环语句的判断
举例

    BOOL a1 = YES;
    BOOL a2 = NO;
    printf("a1=%d",a1);
    printf("a2=%d",a2);
    BOOL a3 = YES;
    BOOL a4 = NO;
    printf("%d %d",a3,a4);

二.关系运算

关系运算符
1.用于两个数的比较 ;
2.关系运算符的运算结果 : 真\假.使用BOOL 类型变量来接受结果 ;
3.关系表达式 : 由常量,变量和关系运算符组成.
举例:

    BOOL a1 = 5 > 3;//结果为YES
    printf("%d",a1);
    BOOL a2 = 5 < 3;//结果为NO
    printf("%d",a2);
//定义两个人的年龄,然后进行比较,再自定义一个BOOl类型的变量来接收结果
    int age1 = 0, age2 = 0;
    scanf("%d %d",&age1,&age2);
    BOOL a = age1 > age2;
    printf("%d",a);
    //定义三个变量,然后将三个变量进行比较,定义一个BOOL类型的变量来接收结果
    int a1 = 0,a2 = 1, a3 = 2;
    BOOL a4 = a1 > a2 >a3;
    printf("%d",a4);
 // 大于等于,小于等于
    BOOL r1 = 5 >= 5;//结果为假
    printf("%d",r1);
    BOOL r2 = 6 <= 1;
    printf("%d",r2);
  //  等于== 不等于!=
    BOOL r3 = 7 == 8;
    BOOL  r4 = 29 != 29;
    printf("%d %d",r3,r4);
   // 注意:==(双等号判断左右两边值是否相等),左右两边可以是常量或变量
    //=(单等号是将右边的值付给左边的变量)左侧一定是变量

三.逻辑运算符

逻辑运算符:
1.逻辑与 逻辑或 逻辑非
2.逻辑运算的结果有两种 – 真\假.通常用BOOL变量来接收.
3.逻辑表达式:由常量,变量和逻辑运算符组成.
*逻辑与 &&
形式:表达式1 && 表达式2
运算规则:
(1)先执行表达式1,后执行表达式2.
(2)表达式1和表达式2结果同为真,才为真,一假即假.
(3)短路现象:表达式1的结果为假就不执行表达式2.
举例

//先定义两个变量,然后将两个变量进行比较,并使用逻辑与进行判断.用BOOL类型变量来接受
    int a = 10,b = 20;
    BOOL r1 = (a3);
    printf("%d",r1);

*逻辑或 ||
形式:表达式1 || 表达式2
运算规则
(1)先执行表达式1,后执行表达式2
(2)表达式1和表达式2的结果同为假,才为假,一真即真.
(3)短路现象:表达式1若为真,就不执行表达式2.
举例

    int a = 10,b = 20;
    BOOL r1 = (a3);
    printf("%d",r1);
    BOOL r2 = (a==3) || (b>a);
    BOOL r3 = (a>3) || (b>a);
    printf("%d %d",r2,r3);
//短路现象
    BOOL r4 = (a<5) || (a++);
    BOOL r5 = (a>5) || (a++);

*逻辑非 !
(1)取反运算.
(2)运算规则:对真假取反

    BOOL a = YES;
    BOOL b = !a;
    printf("a=%d b=%d",a,b);

    BOOL c = NO,d = !c;
    printf("c=%d d=%d",c,d);

最后注意内容
运算符的优先级
算数运算符 > 关系运算符 > 逻辑运算符 >赋值运算符
举例

    int a = 3,b = 4, c =5;
    BOOL r1 = a + b > c && b == c;
    BOOL r2 = a || (b + c && b - c);//b-c不为0极为真
    printf("%d %d\n",r1,r2);

你可能感兴趣的:(C语言漫谈(二))