在此代碼中,星號是否與對象類型相鄰?是否有任何理由?我看到這個使用的方式有點困惑。有些時候,它看起來像這樣:使用指針時的代碼格式化
NSString* stringBefore;
,有時是這樣的:
NSString *stringBefore;
是否有區別?或者正確或錯誤的方式來做到這一點?
謝謝
在此代碼中,星號是否與對象類型相鄰?是否有任何理由?我看到這個使用的方式有點困惑。有些時候,它看起來像這樣:使用指針時的代碼格式化
NSString* stringBefore;
,有時是這樣的:
NSString *stringBefore;
是否有區別?或者正確或錯誤的方式來做到這一點?
謝謝
它沒有區別。
它只是一個指示作者如何精通書寫和閱讀Objective-C。傳統的標準是把它寫爲:
NSString *stringBefore;
你可以很熟練,並選擇不遵循標準。 – progrmr 2010-05-07 22:18:27
這對我來說總是有意義的,直到作者做了以下其中一個: UISwitch * whichSwitch =(UISwitch *)sender; 括號中的一種爲我扔。爲什麼星號與類型分組? – 2010-05-08 04:03:28
因爲它是類型的一部分 - 就像一個「指向NSString的指針」。而不遵循標準的程序員被稱爲「糟糕的程序員」 - 當然,除非他們有充分的理由。 – 2010-05-08 06:13:13
沒有區別。
我使用*
附近的變量名,而不是類型,因爲如果你聲明是這樣的:
int *i, j;
i
將是一個指針int
,並且j將是int
。
如果使用其他的語法:
int* i, j;
你可能會認爲這兩個i
和j
是指針的時候都沒有。
這就是說,我不使用也不推薦在同一行中聲明一個指針和一個非指針變量,就像這個例子。
可能的重複http://stackoverflow.com/questions/2452335/asterisk-sometimes-on-variable-type-sometimes-on-variable-name-why – 2010-05-07 21:29:58