Pointers 指针

也许你一开始对指针充满了疑惑,不要担心,大家都这样。你可能会碰到更糟糕的情况,比如说,指向指针的指针,甚至是指向指针的指针的指针。这里要说一句,就是指向两个指针以上的指针,是相当糟糕的。

常规的变量都是有值的。举个例子,假设有一个对象叫做「房子」,那这个对象本身是一个指针,而这个指针里面又包含了一个来描述房屋地理位置的指针,这个指针就像路标一样,它所做的就是告诉你:「那个房子在那里」。指针的存在,让数据传输变得更有效率。假设你要把这个房屋对象传到一个函数里面去,你就只要传它在内存里的位置就好了。

我们继续刚刚那个关于房屋的话题。想象一下,我们有一个白色的房子,它有三个路标指明它的所在。当你把这个房子重新刷成红色的时候,所有的路标都依然指向这个房子。你不用担心出现一个路标指向新的红房子,另外两个指向旧的白房子的情况。这个情况和指针是一样的。如果你有三个指针指向内存里的同一个对象,当你改变这个对象的时候,这三个指针都会指向这个改变后的对象。

现在你要知道的是在 Objective-C 里,对象都必须有一个指针,所以在这门语言里,你会用到大量的星号(*)。在后面的章节里,你将会看到一个案例,在这个例子里,我们会用指向指针的指针来处理错误。

results matching ""

    No results matching ""