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

Tha*_*nks 14 objective-c

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

smo*_*gan 37

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

NSLog(@"%p", &myIntVar);
Run Code Online (Sandbox Code Playgroud)


Aln*_*tak 5

尝试:

NSLog(@"%p", &myIntVar);
Run Code Online (Sandbox Code Playgroud)

要么

NSLog(@"%lx", (long)&myIntVar);
Run Code Online (Sandbox Code Playgroud)

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

第二个版本采用地址,然后将其强制转换为长整数。这对于在64位平台上进行可移植性是必需的,因为如果没有l格式限定符,它将假定提供的值是一个整数,通常只有32位长。