如何在C中使用一元指针运算符(*)?

Giu*_*olo 0 c pointers objective-c

我正在读一本名为Java和C的书:关键差异,为Java开发人员学习Objective-C.(我的背景是C#/ Java所以指针和管理内存的概念对我来说是新的,所以请耐心等待)

在第2章中,它解释了这个例子的指针:

int i = 1;
int *iptr;
iptr = &i;
*iptr = 2;
Run Code Online (Sandbox Code Playgroud)

我理解上面,其中*iptr是一个指针,它分配了内存位置i,也是从指针iptr我们可以访问的值iptr指向的*iptr语法.

在本书的下方还有以下片段:

//..    
NSMutableString *z = [[[NSNutableString alloc]init] autorelease];
[z appendString:@"Zombie "];
//...
Run Code Online (Sandbox Code Playgroud)

根据我对第2章的理解,该行[z appendString:@"Zombie "]应该是[*z appendString:@"Zombie "],因为我们希望实际的NSMutableString,而不是它的指针,被发送消息appendString!我知道我错了,有些东西我错过了,请指出正确的方向.

非常感谢,

朱塞佩

mip*_*adi 6

在Objective-C,你总是有对象的指针工作(你不能在栈上创建一个对象).消息总是传递到指针(虽然这只是一个抽象的-更复杂的东西在运行时级别上完成的).