const关键字

作者: shoalyu | 来源:发表于2016-10-12 11:45 被阅读204次

    1、常量:const关键字修饰普通变量,不管是前还是后都是一经初始化就不能再赋值改变。

     const int price0;//没初始化,不可变   
     const int price1 = 10;//不可变,只读   
     int const price2 = 30;//不可变,只读
     int price3 = 50;//普通变量,可变
     const int price4 = price3;//初始化指向一个普通变量,不可变,只读
     int const price5 = price4;//初始化指向一不可变常量,不可变,只读
     NSLog(@"price0:%d  price1:%d  price2:%d  price3:%d",price0,price1,price2,price3);
    

    输出结果:
    price0:1072693248 price1:10 price2:30 price3:50 price4:50 price5:50

    2、常量指针:

    int size0 = 50;   
    int size1 = 100;   
    const int * size2 = &size0;//const修饰*size2,可读可写   
    size2 = &size1;//重新赋值    
    int const * size3 = &size0;//const修饰*size3,可读可写   
    size3 = &size1;//重新赋值    
    int * const size4 = &size0;//const修饰size3,指针常量,只读
    //    size3 = &size1;//编译报错       
    const int const * size5 = &size0;//类似于int const * size5 = &size0,可读可写,会报警告:Duplicate ‘const’ declaration specifier   
    size5 = &size1;//重新赋值    
    const int * const size6 = &size0;//类似于指针常量,只读
    //    size6 = &size1;//编译报错    
    int const * const size7 = &size0;//类似于指针常量,只读
    //    size7 = &size1;//编译报错
    NSLog(@"size0:%d  size1:%d  size2:%d  size3:%d  size4:%d  size5:%d  size6:%d  size7:%d",size0,size1,*size2,*size3,*size4,*size5,*size6,*size7);
    

    输出结果:
    size0:50 size1:100 size2:100 size3:100 size4:50 size5:100 size6:50 size7:50
    3、关于const和 #define宏定义区别
    3.1 #define宏是在编译前处理的,const宏是在编译运行时处理,因此如果很多宏定义时建议使用const定义
    3.2内存分配的不同

    相关文章

      网友评论

      本文标题:const关键字

      本文链接:https://www.haomeiwen.com/subject/klqmyttx.html