luc*_*uca 4 pointers objective-c nsstring dereference
根据我的理解(如果我错了,请纠正我):
int x, count = 10;
int *hello;
hello = &count;
x = *hello;
Run Code Online (Sandbox Code Playgroud)
这里变量x和count声明为整数类型.此外,变量计数的值为10.
hello是一个指向整数类型的指针.然后为hello分配计数地址.为了访问count的值,你好前面必须有一个星号,即*hello.
因此,x被赋予计数中的任何值,在本例中为10.
然而...
Fraction *myFraction = [[Fraction alloc] init];
[myFraction someMethod];
Run Code Online (Sandbox Code Playgroud)
在这里,如果我理解正确,myFraction是一个指向Fraction类实例的指针.
myFraction指向(或者更确定地指定了地址)已分配内存并初始化的对象.
当然,为了访问myFraction指向的对象,我应该写:
[*myFraction someMethod];
Run Code Online (Sandbox Code Playgroud)
鉴于x访问count的值的方式,当然为了访问该对象,应该写这个而不是:
[myFraction someMethod];
Run Code Online (Sandbox Code Playgroud)
另外,如果我有
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *str = @"Programming can be a headache";
NSLog (@"%@\n", str);
Run Code Online (Sandbox Code Playgroud)
为什么str被视为上面的对象?或者是str一个对象,在这种情况下,为什么我要让它指向一个NSString类的实例?当然,我应该能够只为str分配一个对象?
目标c中对象的所有使用都是通过对象引用完成的,例如指针.
str
是类型NSString
(as myFraction
)@"Programming can be a headache"
的对象引用,也是类型的对象引用NSString
,因此您可以将其赋值给str
.