这是一个令人尴尬的简单问题,当我深入研究目标C时,我无法找到答案:
在声明或赋值变量时,是否存在指针指针'*'的含义?
我看到过以不同方式定义的变量:
NSString *BLANK_SPACE = @" ";
NSString const *BLANK_SPACE = @" ";
NSString * const BLANK_SPACE = @" ";
Run Code Online (Sandbox Code Playgroud)
现在我知道了CONST修饰符的含义,但我把它放在那里只是因为当我看到星号用空格分隔时,它通常在CONST修饰符之前.
有人可以解释在声明/分配变量时将*放在哪里的理由吗?有什么不同?
const是一个后缀运算符,它引用左边的东西,而不是右边的东西.如果const先来,那么它适用于它之后的第一件事. const NSString *foo(以及NSString const *foo)意味着它是一个指向const NSString的非const指针 - 指针值可以重新分配,但指向的数据是不可变的.NSString * const foo意味着它是一个指向非const NSString的const指针 - 指向的数据可以改变,但指针引用的位置不能改变.
*线条和线条的其他部分之间的间距只是风格和清晰度的问题.
| 归档时间: |
|
| 查看次数: |
199 次 |
| 最近记录: |