常量的一般形式

static const NSInteger kHotWordNumber = 6;


1)static应该放到开头 (c语言的要求, 习俗),不放到最前可能会有编译器警告

2)static标示作用域

3)const标示只读




const int*是不同的


static const int *kConstInt =0;  //*kConstInt=1;是不行的  int*的指针kConstInt的内容是只读的,但是kConstInt是可以指向别处的,kConstInt指向的地方的内容变成只读的,所以kConstInt= 另一个int*b是可以的。

static int* const kConstInt =0;  //*kConstInt=1;是可以的, kConstInt本身变成只读的,不可以修改。


const NSString * vs NSString *const


static const NSString *HotCellReuseId = @"HotCollectionViewCell"; //(可以修改HotCellReuseId的值)

static NSString *const HotCellReuseId = @"HotCollectionViewCell"; //(不允许修改HotCellReuseId的值)

在执行HotCellReuseId=@"1";后,第一种形式不会报错,第二种形式会保错。


const int是不区分前后的


static const int kConstInt = 0;

static int const kConstInt = 0;

两者是一样的,在xcode上都被识别成const int,不允许修改kConstInt的值。

【 Cannot assign to variable 'kConstInt' with const-qualified type 'const int' 】

你可能感兴趣的:(常量的一般形式)