009.BOOL 布尔类型

---------------   main.m   ---------------
#import  <Foundation/Foundation.h>

BOOL  judge( int  a ,  int  b)
{
   
  if (a > b)
    {
       
  return  YES ;
    }
   
  return  NO ;
}
int  main()
{
   
  int  a =  20 ;
     int  b =  5 ;
    NSLog(@"a是否大于b%d", judge(a , b));

     BOOL  b1 =  1 ;
     BOOL  b2 =  18 ;
     NSLog ( @"b1 的值为: %d" , b1);
    NSLog(@"b2的值为:%d", b2);
     BOOL  c =  256 ;
    NSLog(@"bo1 %d", bo1);
}

一、编写本节代码的具体步骤:
1.参照003节的代码编写步骤。

二、本节代码涉及到的知识点:
1. BOOL类型有YES和NO两个值,分别代表真和假。
  注意:在底层代码中,OC实际上是用signed char来代表BOOL,而YES和NO两个值的本质是1和0。
2.在上面的示例代码中,c的值被设为256,而256在底层被转换成二进制数100000000。
  然后当这个二进制数赋值给BOOL类型的变量时,仅能保存后8位,即00000000,所以最后输出为0。
  因此,千万不要以为非零整数赋值给BOOL类型的变量,就一定会得到YES。
3.注意bool与BOOL两者之间的区别
  bool是标准C++中的布尔量,占一个字节大小内存。
  BOOL 是用signed char来代表真假值,本质上还是一个8位二进制数(占一个字节)。
  编译器也不会把它当做 真正布尔类型来处理,而是取其后8位的比特值。
  bool取值false和true,是0和1的区别。
  BOOL取值FALSE和TRUE,是0和非0的区别。
4.OC会把任意非0且非空的值当做真处理,因此,很多时候我们并不需要去专门设定一个BOOL值。
  这样也避免了出现上面提到的漏洞。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值