[英] Dot (".") operator and arrow ("->") operator use in C vs. Objective-C
我试图理解C和Objective-C在用法和语法上的一些不同之处.特别是,我想知道C和Objective-C中点运算符和箭头运算符的用法有什么不同(以及为什么).这里有一个简单的例子.
C Code:
// declare a pointer to a Fraction
struct Fraction *frac;
...
// reference an 'instance' variable
int n = (*frac).numerator; // these two expressions
int n = frac->numerator; // are equivalent
Objective-C Code:
// declare a pointer to a Fraction
Fraction *frac = [[Fraction alloc] init];
...
// reference an instance variable
int n = frac.numerator; // why isn't this (*frac).numerator or frac->numerator??
那么,看看frac
在两个程序中是如何相同的(即它是一个指向分数对象或结构的指针),为什么它们在访问属性时使用不同的语法呢?具体来说,在C中,numerator
属性是用frac->numerator
访问的,但在Objective-C中,它是用frac.numerator
点运算符访问的.既然frac
在两个程序中都是指针,为什么这些表达式不同呢?有人能帮我澄清一下吗?