一如既往地学习,一直很顺利,直到我意识到我不知道它们之间的差异意味着什么。
@class Player;
@class Map;
@interface View : NSView
{
Player* player_;
Map* currentMap_;
NSMutableArray *worldArray;
NSMutableArray *itemArray;
float cellHeight_;
}
@end
没关系,结果明星所在的一面根本没有效果。现在我知道为什么我这么困惑。
答案 0 :(得分:7)
所有客观C对象都由指针引用,这就是*表示的。星是左侧还是右侧对编译器无关紧要;我相信这是个人偏好。
float没有*因为它是C原语,而不是Objective C对象。
答案 1 :(得分:2)
它对编译器没有任何影响。这完全是开发人员的偏好。
以下是相同的:
Player* player_;
Player *player_;
Player * player_;
我曾经读过一篇有趣的评论关于某人类型的思考过程:
Player* player_;
vs某人的类型:
Player *player_;
我现在找不到它,因为这种东西不可能谷歌。基本思想是输入Player *的开发人员认为player_
是指向Player对象的指针。以另一种方式键入它的人认为Player对象包含在解除引用的player_
变量中。一个微妙的差异,但最终是相同的。
您可能需要注意的一件事是在一行中创建多个指针变量:
int *p, q; // p is int*, q is int
int* p, q; // not so obvious here, but p is int*, q is int
int *p, *q; // it's a lot more obvious with the * next to the variable