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 = (a<b) && (b==3);
    printf("%d",r1);

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

    int a = 10,b = 20;
    BOOL r1 = (a<b) || (b==3);
    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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值