首页 > 试题广场 >

指针变量 p1,p2 类型相同,要使 p1,p2 指向同一变

[单选题]
指针变量 p1,p2 类型相同,要使 p1,p2 指向同一变量,哪个语句是正确的(
  • p2=*&p1
  • p2=**p1
  • p2=&p1
  • p2=*p1
#include<stdio.h>
int main()
{
	int a = 54111011;
	int *p1 = &a;
	int *p2 = p1;
	int *p3 = &*p1;
	int *p4 = *&p1;
	printf("p1 = %d\n", p1);
	printf("p2 = %d\n", p2);
	printf("p3 = %d\n", p3);
	printf("p4 = %d\n", p4);

	printf("*p1 = %d\n", *p1);
	printf("*p2 = %d\n", *p2);
	printf("*p3 = %d\n", *p3);
	printf("*p4 = %d\n", *p4);
} 
执行结果:
p1 = 5633940
p2 = 5633940
p3 = 5633940
p4 = 5633940
*p1 = 54111011
*p2 = 54111011
*p3 = 54111011
*p4 = 54111011

编辑于 2017-07-02 18:45:09 回复(1)
先不看指针,假设有一个int a;
int *b = &a;
是a地址,也就是指针
*b ;
那就是得到a的值,等同于a。
那么两句话合二为一就是
*(&a)等价于a

所以 p2 = *&p1  等价于 p2 = p1
所以p1 ,p2指向了同一个东西
发表于 2021-05-25 21:36:46 回复(0)
可以直接用p1=p2吗
发表于 2020-08-20 22:07:33 回复(2)
&p1取p1的地址,再加  *   解引用出该地址中存的指针
发表于 2018-09-23 22:51:08 回复(0)
我想问一下*&p与&*p有什么区别吗🥺
发表于 2024-10-03 00:02:35 回复(1)
p1=&p2不是表示p1引用p2吗?我记得引用后两个地址p1变了p2就跟着变了
发表于 2021-04-03 13:33:12 回复(2)
a和d有什么区别呀,哪位大佬知道
发表于 2021-03-13 17:45:42 回复(1)
&p1取得变量的地址,然后*(&p1)得到内容,即指变量的值
发表于 2019-07-09 13:03:19 回复(1)