我有一个关于指针在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] 删除。
我来说两句