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值。
  这样也避免了出现上面提到的漏洞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值