2009-10-18 198 views
1

我会先说我的问题,说我是一名初学者objective-c开发人员。有什么区别:有什么区别?

NSString * foo;

NSString * foo;

NSString * foo;

有区别吗?

+3

我可以建议选择更详细的标题文本时间吗? – JoePasq 2009-10-18 18:23:08

回答

7

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

有些人更喜欢把星号放在类型旁边以强调这是一个指针类型。

有些人更喜欢在变量旁边加星号来强调语言的要求。在多重声明每个指针变量需要有星号,如:

NSString *foo, *bar; 

我个人的偏好实际上是一个空间的第一你的例子之前和星号后,直接之前保留使用星号用于取消引用指针的变量。我也避免在一个声明中声明多个变量。

2

没有区别,它们意味着所有三个相同的东西。只有它被认为是更好地宣称它喜欢:

NSString *foo; 

因为当你添加第二个变量你的意图更加清晰:

NSString *foo,*bar; 
0

没有区别。三者工作是一样的。

0

不同的是,你必须在每个例子:-)

语义上在不同位置的空间,也没有任何区别。在风格上,最后的形式是首选。