指针变量 p1,p2 类型相同,且均已经被正确赋值,则下列哪个语句使 p1,p2 指向同一变量( )
A、p2=*&p1;B、p2=**p1;C、p2=&p1;D、p2=*p1;这个题选什么啊,为什么啊,麻烦大神讲解一下。。...
A、p2=*&p1; B、p2=**p1; C、p2=&p1; D、p2=*p1;
这个题选什么啊,为什么啊,麻烦大神讲解一下。。 展开
这个题选什么啊,为什么啊,麻烦大神讲解一下。。 展开
1个回答
展开全部
A
&p1表示,取指针变量p1的地址;
*&p1表示,获取指针变量p1的地址里指向的数据;*和&相当于相互抵消了,*&p1可以认为是p1,所以,答案A就相当于p2=p1
&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 的区别
取指针变量的地址不会出错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询