Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何打印变量的内存地址?_Objective C - Fatal编程技术网

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

Objective c 如何打印变量的内存地址?,objective-c,Objective C,我想打印&myVariable后面的内容。我尝试了NSLog(&myIntVar);但是它不起作用。NSLog的参数必须是NSString,所以您需要 NSLog(@"%p", &myIntVar); 尝试: 或 第一个版本使用指针特定的打印格式,该格式假定传递的参数是指针,但在内部将其视为长参数 第二个版本获取地址,然后将其强制转换为长整数。这对于64位平台上的可移植性是必要的,因为如果没有“l”格式限定符,它将假定提供的值是一个整数,通常只有32位长。Nslog(@“%x”&myI

我想打印&myVariable后面的内容。我尝试了NSLog(&myIntVar);但是它不起作用。

NSLog的参数必须是NSString,所以您需要

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);