想知道是否有人可以为我清理以下内容。如果我将指针指向另一个指针会发生什么? E.g
Pointer 1 = Object
Pointer 2 = Pointer 1
如果我改变指针1怎么办?
Pointer 1 = Object 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是否会突然包含其他东西?