可能重复:
Objective C 中的“->”是什么?
初学者问题在这里。我正在浏览目标 c 运行时的介绍(http://mikeash.com/pyblog/friday-qa-2009-03-13-intro-to-the-objective-c-runtime.html),我看到了这个时髦带有 -> 的语法。似乎无法找到关于这意味着什么的解释。
容易点任何人?
谢谢!
可能重复:
Objective C 中的“->”是什么?
初学者问题在这里。我正在浏览目标 c 运行时的介绍(http://mikeash.com/pyblog/friday-qa-2009-03-13-intro-to-the-objective-c-runtime.html),我看到了这个时髦带有 -> 的语法。似乎无法找到关于这意味着什么的解释。
容易点任何人?
谢谢!
这实际上是 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.