为什么*在对象名称前面

时间:2011-03-25 08:39:57

标签: objective-c

我刚开始看一些客观的东西,并想知道这行代码中的一些内容是什么意思:

MyClass *myObject = [[MyClass alloc] init];

为什么我需要星号,这有点令人困惑。我知道这是一个指针,但我一直在阅读一些博客,说这表明myObject是一个对象。什么是思考“*”的正确方法?

2 个答案:

答案 0 :(得分:3)

星号只是表示myObject变量是一个指针,类似于它的c对应部分。

目标c对象在堆上分配,因此[[MyClass alloc] init]返回指向MyClass对象的指针。因此,您需要声明一个指针变量来存储指针。

答案 1 :(得分:1)

传统上在C / C ++中,*表示“指向对象类型的指针”。所以* int是“指向整数的指针”。所以* MyObject是一种“指向MyObject类型的指针”。