iOS 开发 iOS开发iOS开发知识小集

const关键字

2016-10-12  本文已影响204人  shoalyu

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内存分配的不同

上一篇下一篇

猜你喜欢

热点阅读