有什么不同?

时间:2009-10-18 18:13:31

标签: objective-c

我将通过说我是初学者Objective-c开发人员来解释我的问题。有什么区别:

NSString * foo;

NSString * foo;

NSString * foo;

有区别吗?

4 个答案:

答案 0 :(得分:7)

这三个都只是声明一个名为foo的NSString *类型的变量。这真的只是风格偏好的问题。

有些人喜欢将星号放在类型旁边,以强调这是指针类型。

有些人喜欢将星号放在变量旁边,以强调语言的要求。多声明中的每个指针变量都需要带星号,如:

NSString *foo, *bar;

我的个人偏好实际上是第一个在星号前后有空格的示例,保留在变量之前直接使用星号以用于取消引用指针。我还避免在单个声明中声明多个变量。

答案 1 :(得分:2)

没有区别,他们的意思是三个相同的东西。只有它被认为是更好的声明如下:

NSString *foo;

因为当您添加第二个变量时,您的意图更加明确:

NSString *foo,*bar;

答案 2 :(得分:0)

没有区别。三者的工作方式相同。

答案 3 :(得分:0)

不同之处在于,每个示例中的空间位于不同的位置: - )

从语义上讲,没有任何区别。在风格上,最后一种形式是首选。