我正在尝试在我的.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:丢弃来自指针目标类型的限定符”。这是什么意思?
发布于 2010-07-07 23:57:40
这不一样。常量修饰符可以应用于值,也可以应用于指向值的指针。
int * const指向整数(其值可以修改)的常量指针(不可修改)
const int *指向常量整数的可修改指针(它的值不能修改)
所以你可以想象一下:
const int * const;发布于 2013-04-05 20:38:46
常量指针不是常量的指针。常量指针表示指针是常量的。例如,常量指针int * const ptr2;表示ptr2是常量指针。这意味着ptr2不能指向另一个整数。但是,ptr2指向的整数可以更改。
而指向常量const int * ptr1;的指针表示ptr1是指向常量整数的指针。该整数是常量,不能更改。但是,可以使指针ptr1指向其他一些整数。
https://stackoverflow.com/questions/3196491
复制相似问题