指向另一个指针的指针 - 会发生什么?

时间:2010-10-21 10:59:47

标签: iphone objective-c pointers

想知道是否有人可以为我清理以下内容。如果我将指针指向另一个指针会发生什么? E.g

Pointer 1 = Object
Pointer 2 = Pointer 1

如果我改变指针1怎么办?

Pointer 1 = Object 2

指针2现在指向哪里?

谢谢,

马丁

2 个答案:

答案 0 :(得分:1)

Pointer 1 = Object

指针1包含Object的地址。

Pointer 2 = Pointer 1

将指针1的值指定给指针2.指针1的值是Object的地址。因此,指针2也包含Object的地址。

Pointer 1 = Object 2

指针1发生变化,但指针2的值不变。所以指针2仍然包含Object的地址。

事物是包含地址的指针,即指针变量的值是存储器的地址。如果将其分配给另一个指针,则此地址的分配与普通整数一样。但是,指向指针(指向指针或**的指针)与指向另一指针的指针不同。

你可以谷歌“C指针教程”(好吧,Obj-C是C的超集,而指针来自C部分。没有什么特别的Obj-C)可以更好地理解。我会特别为初学者推荐this本书。

答案 1 :(得分:0)

基本上,大声说出你的代码在做什么。指针1指向对象1的地址。指针2指向指针1的地址。改变指针1的值不会改变指针1的地址。即使释放指针1的内容也是如此。
如果您将对象视为封闭框并将指针视为篮子,则可能会有所帮助。你把一个盒子装在篮子里,然后将篮子1放在篮子里2.如果你从篮子里取出盒子并用另一个盒子替换它,那么篮子2是否会突然包含其他东西?