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' 】