gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 05:04:46 24 4
gpt4 key购买 nike

我正在阅读一本名为 Java and C: Key Differences, Learn Objective-C for Java Developers 的书。 (我的背景是C#/Java,所以指针和托管内存的概念对我来说是新的,所以请多多包涵)

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

int i = 1;
int *iptr;
iptr = &i;
*iptr = 2;

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

书的下方有以下片段:

//..    
NSMutableString *z = [[[NSNutableString alloc]init] autorelease];
[z appendString:@"Zombie "];
//...

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

非常感谢,

朱塞佩

最佳答案

在 Objective-C 中,您总是使用指向对象的指针(您不能在堆栈上创建对象)。消息总是传递给指针(尽管这只是一种抽象——更复杂的事情是在运行时级别完成的)。

关于objective-c - 如何在 C 中使用一元指针运算符 (*)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4071996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com