使用`NULL`指针转换说明符`p`的行为是什么?

pat*_*seb 12 c null printf

我想知道是否:

void *ptr = NULL;
printf("%p\n", ptr);
Run Code Online (Sandbox Code Playgroud)

会不会给出(nil)输出?

它是依赖于标准库实现,还是C99标准规范?

cni*_*tar 19

在我的系统上它产生了(null)所以我猜它是实现定义的.更一般地说,所有%p打印都是实现定义的:

7.21.6.1

参数应该是指向void的指针.指针的值以实现定义的方式转换为打印字符序列.


MBy*_*ByD 5

总是给(零)?

一点也不.在我的机器(Mac with i686-apple-darwin11-llvm-gcc-4.2)上打印0x0.