指针解决了行为问题

时间:2015-07-22 17:02:33

标签: c pointers

例如:

int *ptr

& ptr和ptr之间的区别是什么? 因为当我做的时候

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

结果不一样。

3 个答案:

答案 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的存储位置