我是Objective-C编程的新手,(和C一样),我来自基于Java的编程历史。我在理解何时使用指针以及何时使用变量时遇到一些麻烦。我的问题是:
为什么我要输入此
NSDate *date = [NSDate date];
而不是这个
NSDate date = [NSDate date];
我觉得我不是在实例化对象,而是创建它的地址(或者是同一个东西?)。
据我所知,这会使程序在以后使用传递引用更快,但是有人可以为初学者澄清差异尽可能简单吗?
答案 0 :(得分:1)
当你分配一个对象时,cpu会在RAM中分配一个名为" free-store memory"的内存。要访问自由存储内存中的对象,必须使用指向对象内存地址的指针。
在Java中,内存仍然分配在RAM上(因为这是低级硬件存储数据的方式),因此不会发生变化。唯一确实改变的是Java隐藏了指针的使用。