c语言中 int a,int *p1,int *p2; p1=&a; p2=p1; 这时候p2是指

c语言中inta,int*p1,int*p2;p1=&a;p2=p1;这时候p2是指向p1,还是a?或者说p2存的是a的地址还是p1的地址... c语言中 int a,int *p1,int *p2;
p1=&a;
p2=p1;
这时候p2是指向p1,还是a?
或者说p2存的是a的地址还是p1的地址
展开
 我来答
No宅叻
2015-08-13 · 超过16用户采纳过TA的回答
知道答主
回答量:25
采纳率:0%
帮助的人:24.1万
展开全部
可以这么去理解:
p1=&a;//表示p1指针指向a的地址,指针的作用就是为了“指向一个地址”
p2=p1;//p2指针“等于”p1指针,就是p2做了跟p1一样的事——指向a的地址
追问
那么如果想让p2指向指针变量p1,是不是可以写
p2=&p1
追答
当然不是,指针指向普通变量和指针指向指针变量是两回事:
1、指针指向变量:
int a=10;
int *p=&a;//指向int型的指针
2、指针指向指针变量:
int **p1=&p;//指向指针的指针
也可以写成:
int **p1;
p1=&p;
可以这样理解:
*号作为指针的标识符,可以把它看作是跟类型一起的,即“int*”,声明一个指向普通变量的指针时,你的这个指针就得有是 int* p;(p跟a对应)
当要声明一个指向指针变量的指针时,你的这个指针就得是 int* *p1;(*p1与*p对应),所以要有两个“*”号,
指向多级指针的方式也是以此类推的:
int ***p2=&p1;//三级指针
百度网友727fa77
2015-08-13 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:53.5万
展开全部
p2和p1都指向a的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
各方发行人
2015-08-13 · TA获得超过215个赞
知道小有建树答主
回答量:372
采纳率:0%
帮助的人:210万
展开全部
当然是a了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式