Objective c 如何打印变量的内存地址?
我想打印&myVariable后面的内容。我尝试了NSLog(&myIntVar);但是它不起作用。NSLog的参数必须是NSString,所以您需要Objective c 如何打印变量的内存地址?,objective-c,Objective C,我想打印&myVariable后面的内容。我尝试了NSLog(&myIntVar);但是它不起作用。NSLog的参数必须是NSString,所以您需要 NSLog(@"%p", &myIntVar); 尝试: 或 第一个版本使用指针特定的打印格式,该格式假定传递的参数是指针,但在内部将其视为长参数 第二个版本获取地址,然后将其强制转换为长整数。这对于64位平台上的可移植性是必要的,因为如果没有“l”格式限定符,它将假定提供的值是一个整数,通常只有32位长。Nslog(@“%x”&myI
NSLog(@"%p", &myIntVar);
尝试:
或
第一个版本使用指针特定的打印格式,该格式假定传递的参数是指针,但在内部将其视为长参数
第二个版本获取地址,然后将其强制转换为长整数。这对于64位平台上的可移植性是必要的,因为如果没有“l
”格式限定符,它将假定提供的值是一个整数,通常只有32位长。Nslog(@“%x”&myIntVar);%x代表长整数
或者可以像Nslog(@“%p”和&myIntVar)一样打印;%p代表指针更好的是,代表us@“%p”。%x将整数值格式化为十六进制,而%p专门用于指针,并额外填充它打印的十六进制表示形式。我建议不要使用第二个版本,您不会得到任何结果。%p在32位或64位平台上已经可以正常工作。苹果公司特别提到了后一种方法:
NSLog(@"%p", &myIntVar);
NSLog(@"%lx", (long)&myIntVar);