0

可能重复:
Objective C 中的“->”是什么?

初学者问题在这里。我正在浏览目标 c 运行时的介绍(http://mikeash.com/pyblog/friday-qa-2009-03-13-intro-to-the-objective-c-runtime.html),我看到了这个时髦带有 -> 的语法。似乎无法找到关于这意味着什么的解释。

容易点任何人?

谢谢!

4

1 回答 1

4

这实际上是 C 语法。它用于访问指向结构的指针的字段(变量)。

当你有一个指针时,你必须使用*语法来取消引用它:

int var = 1;   // regular int variable
int *ptr = &var;  // pointer to that variable
int sum = (*ptr) + 3;   // if you want to use it regularly, you have to dereference it first.

现在,如果这个指针恰好是一个结构指针,它会变得很丑:

// Define and typedef a struct.
typedef struct {
    int num1;
    int num2; 
} MyStruct;

MyStruct myStruct = (MyStruct){1, 2};   // Regular struct.
MyStruct *pointer = &myStruct;          // Pointer to that struct.
int sum = (*pointer).num1 + (*pointer).num2;   // The ugly part.
int niceSum = pointer->num1 + pointer->num2;   // Same thing with cleaner code.
于 2012-09-12T23:16:07.367 回答