Ses*_*lyn 2 pointers objective-c
我有一个关于指针如何在Objective C中工作的快速问题.
在C中我们有:
int a = 1;
int *b;
b = &a;
//b is 1.
Run Code Online (Sandbox Code Playgroud)
但在Objective C中,一切都已成为指针.所以如果我们有:
NSString *a = @"String";
NSString *b;
b = a; //I know this syntax is wrong but please bear with me.
Run Code Online (Sandbox Code Playgroud)
将b等于"字符串"?或者b会指向a,其中包含值"String"?
在此先感谢您的帮助!
B和A都指向保存实际字符串"String"的相同内存地址.
为了澄清,如果你编译并运行它:
NSString *a = @"String";
NSString *b;
b = a;
NSLog(@"A is %@ %p",a,a);
NSLog(@"B is %@ %p",b,b);
Run Code Online (Sandbox Code Playgroud)
输出是:
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
Run Code Online (Sandbox Code Playgroud)
我现在运行这个代码,输出显示A和B都指向相同的NSString对象 - 它位于内存位置0x100b25068,并包含值"String".