這兩個賦值是否等價,即執行完全相同的事情?取消引用一個指針-vs-&-operator
*pointer = object
pointer = &object
,其中指針是指向「對象實例」的指針。
抑或這只是意義的基本類型。
這兩個賦值是否等價,即執行完全相同的事情?取消引用一個指針-vs-&-operator
*pointer = object
pointer = &object
,其中指針是指向「對象實例」的指針。
抑或這只是意義的基本類型。
絕對不是。
*pointer = object
更改指針指向的內存。
pointer = &object
更改指針。
pointer ----> object1
&object ----> object
在第一種情況下,這變爲:
pointer ----> object
&object ----> object
在第二種情況:
----> object1 //could turn into a memory leak
&object, pointer ----> object
不,這些是不一樣的。
pointer = &object
sets pointer
因此它指向object
。
*pointer = object
將pointer
所指的東西的值設置爲等於object
的值。
NO。
您的第一表達分配對象到指針的值。
假設你的指針變量指向0x1234的。第一次分配後,地址0x1234將包含值「object」。
而第二指派將使得指針指向對象的地址。
如果你改變的第一個任務指針後的值對象不會注意到什麼。
,其中作爲第二次分配,如果你改變對象的值,就可以打通
*pointer.
沒有更新的價值,這是不等價的。第一個使指針的目標值等於右側的對象。第二個改變指針本身,使它指向右側的對象。
換句話說,在第一個之後,內存中有兩個對象的值等於object
的值。在第二次之後,只有一個具有該值的對象,另外還有一個指向該對象的指針。
他們絕對*非常*不同。你必須閱讀更多(和實驗)關於指針。 – 2012-04-05 11:31:48
如果你拿出一支鉛筆和一些紙張,然後*畫出使用方框和箭頭髮生的事情,那麼這些東西就容易理解了。海事組織,鉛筆和紙是解決大多數指針相關問題的最佳工具。 – molbdnilo 2012-04-05 13:29:40
是的,你是對的。我應該在發帖之前考慮過。感謝您的提示,但! – 2012-04-05 21:48:01