据我了解(如果我错了,请纠正我):
int x, count = 10;
int *hello;
hello = &count;
x = *hello;
这里变量 x 和 count 被声明为整数类型。此外,变量 count 被赋值为 10。
hello 是一个指向整数类型的指针。hello 然后被分配了 count 的地址。为了访问count的值,hello前面必须有一个星号,即*hello。
因此,x 被赋值为 count 中的任何值,在本例中为 10。
然而...
Fraction *myFraction = [[Fraction alloc] init];
[myFraction someMethod];
在这里,如果我理解正确的话,myFraction 是一个指向 Fraction 类实例的指针。
myFraction 指向(或者更确切地说是分配地址)一个已分配内存并初始化的对象。
当然,为了访问 myFraction 指向的对象,我应该写:
[*myFraction someMethod];
鉴于 x 访问 count 值的方式,当然为了访问对象,应该写这个而不是:
[myFraction someMethod];
另外,如果我有
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *str = @"Programming can be a headache";
NSLog (@"%@\n", str);
为什么 str 被视为上面的对象?或者 str 是一个对象,在这种情况下,我为什么要让它指向一个 NSString 类的实例?当然,我应该能够将一个对象分配给 str?