C/C++中的指针和引用

 我来答
狂伟彦柳虹
2020-02-09 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:580万
展开全部
你首先要明白,指针运算符的作用,我用一言以概之,你在哪里使用都不会错。指针运算符*的作用是求出*后面所指地址里的值。因此只要*后面的变量表示的是一个地址就可以使用*运算符,来求出这个地址中的值,你不用管这个地址的表示形式是怎样的,只要是地址就可以使用*来求出地址中的值。
因此i=*&p;
错误,因为p是指针,那么&p表示的是指针p的地址,那么*&p表示的就是指针p的地址中的值,也就是p了,这个值也是个地址,变量i要求的是一个整型值,因此错误。这里要注意,指针p同样有地址,而且也有值,指针p的值就是p,但这个值是另一个变量的地址。
q=**&p;
错误,*&p的解释同上,而**&p就是求指求p所指负的地址的值,也就是*p的意思,而q要求是一个地址,因此错误。
i=&*p;
错误,*p表示p所指地址处的值,&*p表示对p所指向的值再求地址,因此是错误的,因为i要求是一个整数,而不是一个地址。
p=&*&i;
正确,因为*&i就等于i的值,而&i表示的就是i的地址,因此正确。
q=*&*p;
错误,简单的判断方法就是最左边的运算符为*运算符,这个运算符的结果是一个值而不是地址,因此肯定错误。具体一点就是*p指的是p所指地址处的值,而&*p也就等同于p了。
i=*&*p
;
正确,原理同上面的解释
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式