所以,如果我这样做:
int *ptr = NULL:
printf("%p", ptr);
我打印出来(零)。那么这是打印出指针的地址?哪个指向空指针地址。
但如果我这样做:
int *ptr = NULL;
printf("%p", &ptr);
我得到了一个内存地址。为什么是这样?是因为它给出了实际的NULL内存位置吗?这个位置总是会改变吗?每当我使用第二段代码时,我会不断获得不同的内存地址。
答案 0 :(得分:4)
指针ptr
中存储的值为NULL
或0
。
但是,ptr
是一个变量。它存储在某个内存位置。因此,如果您使用&ptr
,您将获得存储ptr
的内存位置。