Objective c 指针的用途 我刚刚开始使用Objo C,尽管我的进度和学习曲线(我没有C背景)做得不错-我不理解一个概念,它也是C++指针的一部分!p>

Objective c 指针的用途 我刚刚开始使用Objo C,尽管我的进度和学习曲线(我没有C背景)做得不错-我不理解一个概念,它也是C++指针的一部分!p>,objective-c,pointers,Objective C,Pointers,好的-我知道指针指向实际变量的物理位置,而不是变量本身的值。究竟什么时候能派上用场 还有,什么时候用,什么时候不用 我在谷歌上搜索得够多了,但我遇到的每一位导游似乎都认为我是火箭科学博士 有人能用一个简单的例子解释一下吗?使用指针的主要原因之一是为了节省内存。例如,如果要将数组传递给函数,最好将内存中的地址发送给函数,而不是发送值 如果您继续学习c或其他低级语言,那么您将看到数组和指针几乎可以互换。(C样式数组,不是ObjtBabLead在Objc中的向量,或者C++中的向量或者C语言中的列表)

好的-我知道指针指向实际变量的物理位置,而不是变量本身的值。究竟什么时候能派上用场

还有,什么时候用,什么时候不用

我在谷歌上搜索得够多了,但我遇到的每一位导游似乎都认为我是火箭科学博士


有人能用一个简单的例子解释一下吗?

使用指针的主要原因之一是为了节省内存。例如,如果要将数组传递给函数,最好将内存中的地址发送给函数,而不是发送值


如果您继续学习c或其他低级语言,那么您将看到数组和指针几乎可以互换。(C样式数组,不是ObjtBabLead在Objc中的向量,或者C++中的向量或者C语言中的列表)

< P>尽管它们是C指针,当然,我强烈建议理解它们对对象的ALS引用。p> 您可以创建一个对象,也可以从某处接收它,并将对该对象的引用存储在变量中

当您将对对象的引用交给某个函数或方法时,此方法可以访问您交给的对象。它不必使用数据的副本。如果它对对象的属性进行了更改(通过poperty声明和类似的方法,只要允许),那么引用所引用的对象也会发生更改

当然,您可以复制它,并在您认为合适的时候继续使用该副本。在这种情况下,原始对象保持不变


当你真的遇到一个必须使用c风格指针的情况时,你最好后退一步,理解c。我不认为当你有对象c的背景时理解c风格指针是明智的。头脑清醒,从头开始学习C,然后在非常罕见的情况下使用新的专有技术,在Objective-C项目中必须处理这些基本数据类型

原因很简单:

想象你有一个非常大的物体将其传递给函数时,是否确实要复制整个对象?-这将占用大量的CPU和内存


通过使用指针,您不必每次传递原始对象时都复制它。(当然,另一方面是,如果你在函数中更改对象,它也会更改原始对象)。

重复:这主要是一个优化问题。请仔细检查一下,赫尔曼-你就是那个人!这正是我要找的!对不起,伙计,有点新。干杯非常感谢安迪!我终于明白了它的目的——我认为这是人们无法改掉使用它的习惯的遗留问题——我错了多少?