如何打印变量的内存地址?

时间:2009-04-29 13:02:41

标签: objective-c

我想打印& myVariable背后的内容。我试过NSLog(& myIntVar);但它不起作用。

3 个答案:

答案 0 :(得分:36)

NSLog的参数需要是一个NSString,所以你想要

NSLog(@"%p", &myIntVar);

答案 1 :(得分:4)

尝试:

NSLog(@"%p", &myIntVar);

NSLog(@"%lx", (long)&myIntVar);

第一个版本使用特定于指针的打印格式,该格式假定传递的参数是指针,但在内部将其视为long。

第二个版本获取地址,然后将其转换为长整数。这对于64位平台上的可移植性是必要的,因为没有“l”格式限定符,它将假定提供的值是一个整数,通常只有32位长。

答案 2 :(得分:0)

的NSLog(@"%×",&安培; myIntVar); %x用于long int 或者你可以打印像Nslog(@"%p",& myIntVar); %p用于指针