客观语言的指针是什么?

时间:2012-05-14 11:16:17

标签: objective-c

我似乎无法在客观语言中找到指针的实际用法。我知道c#和java并且没有必要使用指针(这就是我的想法,它也被认为是c#和java的dangoures编码)但现在我开始学习objective-c而我无法弄清楚为什么你必须总是创建指向对象实例的指针。

4 个答案:

答案 0 :(得分:2)

在Objective-C中(如在C中)函数的参数按值传递,如果希望函数修改原始对象,则必须传递指向该对象的指针。 Java和c#通过引用传递参数,因此不需要指针。

答案 1 :(得分:1)

好吧,在c#中你确实使用了指针,而不是明确地使用指针。考虑代理,匿名类型等等。如果您没有有效管理这些引用类型的使用,c#中的垃圾收集也会受到影响。

在对象中,比赛场地暴露得更加暴露。我认为这种方法与专业人士一样多,因为你上面提到的原因恰好是记忆gpf的危险等等。

慢慢慢慢地,猫咪猴子:)。

答案 2 :(得分:1)

你真的明白指针是什么吗? 它只是存储对象的存储空间的地址。

因此,如果使用指针,并将指针作为参数传递给函数,则只传递地址而不传递完整对象。这要快得多,因为您不必复制整个对象,只需通过地址访问对象的值即可。

Java也使用指针,你不必担心它们自己。 (如果你不想使用指针,在某些情况下这很烦人。)

修改

int nvar=2;
int* pvar=&nvar;

在这里你可以看到,如果我引用整数“nvar”,我可以把它放在指向整数“pvar”的指针中。这就是指针和引用之间的联系(在C ++中,在这种情况下)

答案 3 :(得分:1)

使用指针而不能使用引用可以执行的操作之一就是递增它们。由于指针是一个地址(已经提到过),因此更改它的值会使其指向数组中的下一个/上一个对象。它不是很有用,因为你可以在数组上使用next / previous索引,但在某些情况下它可能会生成一些非常小的代码(虽然更脏,更容易出错)。

指针非常有趣,当你习惯它们时;)