例一:
#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;
确实很别扭。
例二:
#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);}