例如:
int *ptr
& ptr和ptr之间的区别是什么? 因为当我做的时候
printf("ptr= %d but &ptr=%d",ptr,&ptr);
结果不一样。
答案 0 :(得分:1)
ptr
是指针值(它是一个地址)。
&ptr
是指针对象的地址。
要打印您必须使用的指针值:
printf("ptr= %p but &ptr=%p", (void *) ptr, (void *) &ptr);
答案 1 :(得分:0)
#include <stdio.h>
int main()
{
int *ptr;
int i=5;
ptr=&i;
printf("ptr= %p but &ptr=%p",(void *)ptr,(void *)&ptr);
return 0;
}
此代码中ptr
代表i
的地址,&ptr
将显示存储ptr
值的地址。要查看i
的值,您可以打印*ptr
。
答案 2 :(得分:0)
int *ptr;
delcares指针变量(指针指的是指向其他内存位置的变量)
printf("ptr= %d but &ptr=%d",ptr,&ptr);
使用%d打印ptr会给出变量ptr的值,它将是一个内存位置。如果指针未初始化,它将给出一些无关紧要的值
打印&amp; ptr by%d给出指针变量ptr的地址,它将是分配变量ptr的存储位置