例一:
#include <stdio.h>
int main()
{
int a=100,b=200;
int *p1=&a,*p2=&b;
printf("%d,%d
",a,b);
printf("%x,%x
",&a,&b);
printf("%x,%x
",p1,p2); //虽然上面 *p1=&a ,那也就是 *p1才是地址。而事实上,上面那个是定义,不是等于。也就说p1为地址,*p1为指向地址的内容。
printf("%d,%d
",*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
",a,b);
printf("%x,%x
",&a,&b);
printf("%x,%x
",p1,p2);//虽然上面 *p1=&a ,那也就是 *p1才是地址。而事实上,上面那个是定义,不是等于。也就说p1为地址,*p1为指向地址的内容。
//printf("%d,%d
",*p1,*p2);
}