2010-07-27 103 views
3

哦,作爲一個內存管理noob的樂趣!在Objective-C中Type * var和Type * var之間有什麼區別?

雖然我理解了指針的基本知識,但我已經看到了這兩種不同的構造,卻沒有能夠真正理解它們的區別,但我被某些Objective-C代碼弄到了一點點。

任何人都可以啓發我嗎?

編輯我的問題,構造沒有不同的行爲,而是由多個聲明陷入了一遍。 謝謝!

+0

[聲明指針可能重複;星號在類型和名稱之間的空格左側或右側?](http://stackoverflow.com/questions/2660633/declaring-pointers-asterisk-on-the-left-or-right-of-the-space -between最型-a)的 – kennytm 2010-07-27 09:45:34

回答

5

沒有區別 - 這是品味的問題。但是,請注意指針實際上始終綁定到名稱,而不是類型。所以這個:

Type* var1, var2; 

聲明var1爲指針,以Type,而var2的指針。這只是另一個不在同一個聲明中聲明多個變量的原因。

在歷史上,Type *var符號在C,其中爲「var被聲明爲指針Type」,即「的*var類型是Type」,它讀出是比較常見的。另一方面,在C++中,Type* var更常見,因爲「var被聲明爲類型'指向Type'的指針」。

0

你確定它的行爲不同嗎?這對我來說似乎有點奇怪。即使我不知道Objective-c,在C中,

Type* var 
Type * var 
Type *var 

這將只是語法/首選項的問題。

不包括如果你不是在說聲明一個變量,但訪問它?

2

完全沒有區別。

但考慮到以下行:

Type* var1, var2; 

這裏只VAR1是一個指針類型,但它更容易看到,如果你寫

Type *var1, var2; 
相關問題