天天看点

c语言指针

例一:

#include <stdio.h>

int main()

{

 int a=100,b=200;

 int *p1=&a,*p2=&b;

 printf("%d,%d\n",a,b);

   printf("%x,%x\n",&a,&b);

   printf("%x,%x\n",p1,p2); //虽然上面  *p1=&a ,那也就是 *p1才是地址。而事实上,上面那个是定义,不是等于。也就说p1为地址,*p1为指向地址的内容。

   printf("%d,%d\n",*p1,*p2); 

}

-----------------------------------

总结:*p1=&a 相当于

int *p1;

p1=&a;

确实很别扭。

例二:

 int p1=&a,p2=&b;  //变化的是这里

   printf("%x,%x\n",p1,p2);//虽然上面  *p1=&a ,那也就是 *p1才是地址。而事实上,上面那个是定义,不是等于。也就说p1为地址,*p1为指向地址的内容。

   //printf("%d,%d\n",*p1,*p2);