它打印的内存地址

时间:2017-05-23 13:34:51

标签: ios objective-c

在每种情况下指针地址或字符串(hello)地址打印的内存地址。帮帮我

案例:1-

NSString *myMessage=@"hello";
NSLog(@"my message:%p",myMessage);

案例:2-

NSString *myMessage=@"hello";
NSLog(@"my message:%p",&myMessage);

2 个答案:

答案 0 :(得分:2)

案例1 -

NSString是一个类......

NSString * myMessage = @“hello”; ... myMessage是一个指向包含“hello”

的NSString对象的指针

您的具体地址会有所不同,但基本上就是这样(在调试控制台中使用p myMessage

(__NSCFConstantString *) $2 = 0x0000000103e9f150

案例2 -

&安培;为您提供对象的地址

& myMessage ...表示指向“hello”的地址

您的具体地址会有所不同,但基本上就是这样(在调试控制台中使用p &myMessage

(NSString **) $3 = 0x00007fff5bd62a98

答案 1 :(得分:0)

每个变量都是一个内存位置,每个内存位置都定义了其地址,可以使用&符号(&)运算符进行访问,该运算符表示内存中的地址。

案例:1-它将打印“我的消息:0x6011d0”

NSString *myMessage=@"hello";
NSLog(@"my message:%p",myMessage);

输出:我的留言: 0x6011d0

case:2-它将返回变量myMessage的地址位置。

NSString *myMessage=@"hello";
NSLog(@"my message:%p",&myMessage);

输出:我的消息:0x7ffe5a42e558