首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Objective C const NSString * vs NSString * const

Objective C const NSString * vs NSString * const
EN

Stack Overflow用户
提问于 2010-07-07 23:50:52
回答 2查看 16.3K关注 0票数 46

我正在尝试在我的.h文件中设置一个NSString常量,以便在我的.m中定义。我能理解

.h中的extern NSString * const variableName;

NSString * const variableName = @"variableValue";就是这样做的。检查c教程,我发现const应该放在变量定义之前。我的问题是,为什么不在.h中声明为extern const NSString * variableName;,在.m中声明为const NSString * variableName = @"variableValue";。我知道这不起作用,因为我遇到编译器警告说“传递methodName的参数1:丢弃来自指针目标类型的限定符”。这是什么意思?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-07 23:57:40

这不一样。常量修饰符可以应用于值,也可以应用于指向值的指针。

代码语言:javascript
复制
int * const

指向整数(其值可以修改)的常量指针(不可修改)

代码语言:javascript
复制
const int *

指向常量整数的可修改指针(它的值不能修改)

所以你可以想象一下:

代码语言:javascript
复制
const int * const;
票数 62
EN

Stack Overflow用户

发布于 2013-04-05 20:38:46

常量指针不是常量的指针。常量指针表示指针是常量的。例如,常量指针int * const ptr2;表示ptr2是常量指针。这意味着ptr2不能指向另一个整数。但是,ptr2指向的整数可以更改。

而指向常量const int * ptr1;的指针表示ptr1是指向常量整数的指针。该整数是常量,不能更改。但是,可以使指针ptr1指向其他一些整数。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3196491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档