指针变量 p1,p2 类型相同,且均已经被正确赋值,则下列哪个语句使 p1,p2 指向同一变量( )

A、p2=*&p1; B、p2=**p1; C、p2=&p1; D、p2=*p1;
这个题选什么啊,为什么啊,麻烦大神讲解一下。。

A
&p1表示,取指针变量p1的地址;
*&p1表示,获取指针变量p1的地址里指向的数据;*和&相当于相互抵消了,*&p1可以认为是p1,所以,答案A就相当于p2=p1追问

请问D选项中指针P1代表地址,前面有*,不可以理解为取P1地址中的值吗?,A选项P1本身就是地址了再附加地址符号不错嘛,我还是不太清楚。麻烦您再讲一下,谢谢

追答

举例说明:

int a = 5, b = 6;
int * p1 = &a;
int * p2 = &b;
p2 = *p1;//此处将p1指向的值5赋值给指针p2,p2从原来指向变量b的地址,现在变成了,指向了地址为5的地方。
//要仔细理解 变量b的地址 和 地址为5 的区别

取指针变量的地址不会出错。

温馨提示:答案为网友推荐,仅供参考
相似回答