指针问题1234567897899

p1=&a与*p=n这两个等式相等吗
含义有什么不同吗
求指点

你这a和n是啥呀?
p1=&a是把a的地址存到p1中
*p=n是将p指向的地址中的值赋值为n
二者最大的区别在于,前者存地址,后者存值:

int a=123;
int *p1 , *p2;
p1=&a;
*p2=a;
a=456;
printf("*p1=%d,*p2=%d\n",*p1,*p2);
*p1=456,*p2=123

由于p1存的是a的地址,所以a更改p1也更改
而p2指向的是随便一个位置,这个位置的值被改成a,当a被更改时,这个位置不会改,可以这么理解:

int a=123, *p2;
int x=a;
p2=&x;//当然,实际上p2是计算机随意分配的位置