zoukankan      html  css  js  c++  java
  • 14_传智播客iOS视频教程_OC的数据类型

    对比一下OC和C差别,首先第一个是数据类型。

    C语言的数据类型分哪几类?C语言有哪些数据类型?

    基本数据类型当然还包括int的一些修饰符。像short、long、long long、unsigned。typedefine给已有的数据类型取一个别名。


     C语言还新增了一些数据类型:BOOL类型。条件表达式:比较表达式/关系表达式,第二种是逻辑表达式.C语言用int类型的变量来表示比较表达式/关系表达式和逻辑表达式的结果。0表示不成立,非0表示成立。

           3).   BOOL的本质.
        
                     typedef signed char BOOL;
     
                     实际上BOOL类型的变量  是1个有符号的char变量.

    所以BOOL b1在内存当中是占1个字节。OC所谓的新增数据类型99.99%的情况下都是typedef

        BOOL b2 = YES;
        char b3  =  1;

    所以这两句话在内存上没有任何区别。BOOL类型的可读性高一些。所以从今天开始要存储一个条件表达式的结果,请你使用BOOL类型。OC当中新增的第一个类型:BOOL类型。

     BOOL的本质.
        
                     typedef signed char BOOL;
     
                     实际上BOOL类型的变量  是1个有符号的char变量.
     
                     #define YES ((BOOL)1)
                     #define NO  ((BOOL)0)
     
                     YES  实际上就是   1
                     NO   实际上就是   0

    Boolean类型的本质:

    typedef unsigned char                   Boolean;

    Boolean其实是一个无符号的char类型.

    true和false更直接,他们两个其实是两个宏.

    #define true 1
    #define false 0

    这句话

    Boolean b1 = false;

    在预编译的时候已经换成了这句话

    unsigned char b1 = 0;

    所以可以给Boolean类型的变量赋一个数字给它,包括0和1.因为Boolean类型的变量b1是char类型.

        //Boolean b1 = 0;
        Boolean b1 = 10;
        //Boolean b1 = 1;
        //Boolean b1 = 20;

    为什么要搞个Boolean类型的变量?因为可读性高一些。


    现在要表示一个条件表达式有两种,一个是BOOL,一个是Boolean.用哪个呢?但是记住要用BOOL类型,因为BOOL类型(布尔类型)四个字母就搞定了,简洁明了.绝大部分情况我们都是使用布尔BOOL.为什么有了布尔类型BOOL还要搞一个Boolean类型呢?因为它要吸引别的程序员。有的编程语言里面叫BOOL,有的编程语言里面叫Boolean.例如C#叫BOOL,java里面叫Boolean.这样它就可以吸引别的语言的程序员过来。我们平时就用BOOL.


    这就是OC在C语言基础之上新增的两个数据类型:BOOL和Boolean。.


    /*
       1.  OC中的数据类型.
     
             1).  OC中支持C语言中的所有的数据类型.
            
                  a.  基本数据类型
                    
                      int  double  float  char
                  
                  b.  构造类型
     
                      数组  结构体   枚举
     
                  c.  指针类型
                      int *p1;
     
                  d.  空类型.
                      void
     
                  e.  typedef自定义类型.
     
                 
               2).   BOOL类型.
     
                     1). 可以存储YES或者NO中的任意1个数据.
       
                     2). 一般情况下BOOL类型的变量用来存储条件表达式的结果.如果条件表达式成立 那么结果就是YES
     
                         如果条件表达式不成立  结果就是NO
     
                     3).   BOOL的本质.
        
                     typedef signed char BOOL;
     
                     实际上BOOL类型的变量  是1个有符号的char变量.
     
                     #define YES ((BOOL)1)
                     #define NO  ((BOOL)0)
     
                     YES  实际上就是   1
                     NO   实际上就是   0
               3).   Boolean
                     a.Boolean类型的变量可以存储true或者false
                     b.一般情况下BOOL类型的变量用来存储条件表达式的结果.如果条件表达式成立 那么结果就是true
                       如果条件表达式不成立  结果就是false
                     c.本质
                       typedef unsigned char                   Boolean;
                
               4).  class类型.  类.
     
            
               5).  id类型   万能指针.
     
     
               6).   nil   与NULL差不多.
     
               7).   SEL  方法选择器.
     
               8).   block  代码段.
     
     
          
     
     */
    
    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[]) {
        //int num = 12;
        int num1 = 10;
        int num2 = 20;
        //BOOL  b1 = YES;
        //Bool b1 = NO;
        //BOOL b1 = mum1 > num2;//条件表达式的结果就可以存在b1这个变量里面去了
        //BOOL b2 = YES;
        //char b3  =  1;
        //Boolean b1 = num1 > num2;
        //Boolean b1 = false;
        //Boolean b1 = 0;
        Boolean b1 = 10;
        //Boolean b1 = 1;
        //Boolean b1 = 20;
        //unsigned char b1 = 0;
        }
        return 0;
    }
  • 相关阅读:
    pl/sql优化策略 老猫
    游标调用函数 老猫
    oracle性能检测sql语句 老猫
    Oracle高级SQL培训与讲解 老猫
    Oracle执行计划详解 老猫
    SQL中获取树形结构所有子级数据
    纯 CSS 实现的下拉菜单
    Node.JS 异步遍历目录
    Node.JS 的安装与入门
    Node.JS 的模块管理介绍
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/7136948.html
Copyright © 2011-2022 走看看