gpt4 book ai didi

objective-c - 您在 Objective-C 中将指针指示器 "*"放在什么位置是否有含义?

转载 作者:太空狗 更新时间:2023-10-30 03:36:18 25 4
gpt4 key购买 nike

这是一个令人尴尬的简单问题,我在深入研究 Objective C 时找不到答案:

在声明或分配变量时,指针指示符“*”的位置是否有含义?

我见过以不同方式定义的变量:

 NSString  *BLANK_SPACE = @" ";
NSString const *BLANK_SPACE = @" ";
NSString * const BLANK_SPACE = @" ";

现在我知道了 CONST 修饰符的含义,但我把它放在那里只是因为当我看到用空格分隔的星号时,它通常在 CONST 修饰符之前。

有人可以解释在声明/分配变量时将 * 放在哪里的基本原理吗?有什么区别?

最佳答案

const 是一个后缀运算符,指的是它左边的东西,而不是右边的东西。如果 const 先出现,那么它适用于它之后的第一件事。 const NSString *foo(以及 NSString const *foo)意味着它是一个指向 const NSString 的非常量指针 - 指针值可以重新分配,但是数据被指向是不可变的。 NSString * const foo 表示它是一个指向非 const NSString 的 const 指针 - 指向的数据可以改变,但指针指向的位置不能。

* 和行的其他部分之间的间距只是风格和清晰度的问题。

关于objective-c - 您在 Objective-C 中将指针指示器 "*"放在什么位置是否有含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7225039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com