不知道是否有人能爲我清除以下內容。如果我將指針指向另一個指針會發生什麼? E.g指向另一個指針的指針 - 會發生什麼?
Pointer 1 = Object
Pointer 2 = Pointer 1
如果我再改指針1:
Pointer 1 = Object 2
哪裏指針2現在都指向?
感謝,
馬丁
不知道是否有人能爲我清除以下內容。如果我將指針指向另一個指針會發生什麼? E.g指向另一個指針的指針 - 會發生什麼?
Pointer 1 = Object
Pointer 2 = Pointer 1
如果我再改指針1:
Pointer 1 = Object 2
哪裏指針2現在都指向?
感謝,
馬丁
Pointer 1 = Object
指針1包含對象的地址。
Pointer 2 = Pointer 1
您指針1的值賦給指針2指針1的值是對象的地址。所以指針2也包含Object的地址。
Pointer 1 = Object 2
指針1變化,但指針2的值不變。所以指針2仍然包含Object的地址。
東西是指針包含地址,即指針變量的值是內存的地址。如果將其分配給另一個指針,則該地址將像普通整數一樣分配。但是,指向一個指針(即指向指針或**的指針)與將指針指派給另一個不同。你可以谷歌「C指針教程」(以及Obj-C是C的超集,指針來自C部分,沒有什麼特別的Obj-C),以便更好地理解。我會爲初學者推薦this書。
我想知道爲什麼這是downvoted。評論會幫助我改善自己。 – taskinoor 2011-01-23 07:48:55
基本上,大聲說出你的代碼在做什麼。指針1指向對象1的地址。指針2指向指針1的地址。更改指針1的值不會更改指針1的地址。即使釋放指針1的內容也不行。
如果您將對象視爲封閉框並將指針視爲籃子,可能會有所幫助。您將一個盒子放入籃子1中,然後將籃子1放入籃子2中。如果您將籃子1從盒子1上取下並更換爲另一盒子,籃子2是否突然包含其他東西?
推薦閱讀:Peter Hosey的[你需要知道的關於C語言中指針的所有內容](http://boredzo.org/pointers/)。 – 2010-10-21 11:48:56