常量的一般形式

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,880评论 1 10
  • 307、setValue:forKey和setObject:forKey的区别是什么? 答:1, setObjec...
    AlanGe阅读 1,582评论 0 1
  • 1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch...
    阳光的大男孩儿阅读 5,031评论 0 13
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,209评论 30 471
  • 如果你看到我的文章,请回一个1好嘛,我想知道有多少人会默默的打开简书,体验阅读带来的芬芳。
    阿白0213阅读 130评论 1 0