哦,作爲一個內存管理noob的樂趣!在Objective-C中Type * var和Type * var之間有什麼區別?
雖然我理解了指針的基本知識,但我已經看到了這兩種不同的構造,卻沒有能夠真正理解它們的區別,但我被某些Objective-C代碼弄到了一點點。
任何人都可以啓發我嗎?
編輯我的問題,構造沒有不同的行爲,而是由多個聲明陷入了一遍。 謝謝!
哦,作爲一個內存管理noob的樂趣!在Objective-C中Type * var和Type * var之間有什麼區別?
雖然我理解了指針的基本知識,但我已經看到了這兩種不同的構造,卻沒有能夠真正理解它們的區別,但我被某些Objective-C代碼弄到了一點點。
任何人都可以啓發我嗎?
編輯我的問題,構造沒有不同的行爲,而是由多個聲明陷入了一遍。 謝謝!
沒有區別 - 這是品味的問題。但是,請注意指針實際上始終綁定到名稱,而不是類型。所以這個:
Type* var1, var2;
聲明var1
爲指針,以Type
,而var2
是不的指針。這只是另一個不在同一個聲明中聲明多個變量的原因。
在歷史上,Type *var
符號在C,其中爲「var
被聲明爲指針Type
」,即「的*var
類型是Type
」,它讀出是比較常見的。另一方面,在C++中,Type* var
更常見,因爲「var
被聲明爲類型'指向Type
'的指針」。
你確定它的行爲不同嗎?這對我來說似乎有點奇怪。即使我不知道Objective-c,在C中,
Type* var
Type * var
Type *var
這將只是語法/首選項的問題。
不包括如果你不是在說聲明一個變量,但訪問它?
完全沒有區別。
但考慮到以下行:
Type* var1, var2;
這裏只VAR1是一個指針類型,但它更容易看到,如果你寫
Type *var1, var2;
[聲明指針可能重複;星號在類型和名稱之間的空格左側或右側?](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