C 指针处理行为

C 指针处理行为,c,pointers,C,Pointers,例如: int *ptr &ptr和ptr有什么区别 因为当我这么做的时候 printf("ptr= %d but &ptr=%d",ptr,&ptr); 结果不一样 ptr是指针值(它是一个地址) &ptr是指针对象的地址 要打印指针值,必须使用: printf("ptr= %p but &ptr=%p", (void *) ptr, (void *) &ptr); #包括 int main() { int*ptr; int i=5; ptr=&i;

例如:

int *ptr
&ptr和ptr有什么区别 因为当我这么做的时候

printf("ptr= %d  but &ptr=%d",ptr,&ptr);

结果不一样

ptr
是指针值(它是一个地址)

&ptr
是指针对象的地址

要打印指针值,必须使用:

printf("ptr= %p  but &ptr=%p", (void *) ptr, (void *) &ptr);
#包括
int main()
{
int*ptr;
int i=5;
ptr=&i;
printf(“ptr=%p但&ptr=%p”,(void*)ptr,(void*)和ptr);
返回0;
}
在此代码中,
ptr
将给出
i
的地址,
&ptr
将显示存储
ptr
值的地址。要查看
i
的值,可以打印
*ptr

int *ptr;
一个指针变量(指针是指指向其他内存位置的变量)

使用%d打印ptr将给出可变ptr的值,该值将作为内存位置,如果指针未初始化,它将给出一些不重要的值


按%d打印&ptr给出指针变量ptr的地址,该地址将是分配变量ptr的内存位置

x
之间的区别是什么(其中
x
是任何变量)?我投票结束这个问题,因为它是在问为什么1不是2。这里有关于同一个问题的更多信息。只需写
void*x;x=&x并且满足了您的期望。顺便说一句,不要将
printf()
指针作为整数。
int *ptr;
printf("ptr= %d  but &ptr=%d",ptr,&ptr);