指针在Objective-C中的工作方式

塞斯林

我有一个关于指针在Objective C中如何工作的快速问题。

在C中,我们有:

int a = 1;
int *b;
b = &a;
//b is 1.

但是在目标C中,所有内容都已经成为指针。因此,如果我们有:

NSString *a = @"String";
NSString *b;
b = a;         //I know this syntax is wrong but please bear with me.

b是否等于“字符串”?还是b指向包含值“ String”的a?

在此先感谢您的帮助!

伍德斯托克

B和A都指向相同的内存地址,该地址包含实际的字符串“ String”。

为了澄清,如果您编译并运行此命令:

NSString *a = @"String";
NSString *b;
b = a;

NSLog(@"A is %@ %p",a,a);
NSLog(@"B is %@ %p",b,b);

输出为:

2015-03-26 21:35:09.860 ObjCTest[1379:187000] A is String 0x100b25068

2015-03-26 21:35:09.860 ObjCTest[1379:187000] B is String 0x100b25068

我现在从字面上运行了这段代码,输出显示A和B都指向同一个NSString对象-该对象位于内存位置0x100b25068中,并包含值“ String”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章