计算机二级,C语言,请问这道选择题题目是不是有问题?

 我来答
NuYoah1314
2016-09-20 · 超过11用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:18.3万
展开全部
只是一个指向指针的指针吧,没什么毛病啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiuluot
2016-09-20 · TA获得超过851个赞
知道小有建树答主
回答量:599
采纳率:66%
帮助的人:180万
展开全部
没问题,答案是8。
追问
该怎么理解呢
追答
在定义变量的时候,如*p,是表示定义一个p指针。在非定义阶段*p表示p指针所指位置的数据,这个时候的指针是p,而不是*p。(列如:int a=2,*p=&a,b;b=*p;定义一个指针p,这个指针指向a存储的首地址。b=*p,其实相当于b=&p,把指针p所指向的地址里面的数据复制给b).
*pk=&k.表示定义一个pk指针,这个指针指向k的地址。
所以*(p=&n),表示把n的地址复制给指针p,这个时候仍然是一个地址(或者叫指针),所以需要通过取地址符(或指针符*)就表示这个地址所对应的数据。。。理解这个概念,就容易了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Primo王的悲伤
2016-09-20 · 超过64用户采纳过TA的回答
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:77.7万
展开全部
没问题啊,对的啊
追问
该怎么理解呢
追答
首先*p表示指针,他存放的是地址,&是取地址符号,然后 对指针用*表示解地址,解出地址里面的东西。

然后 pk = &m,意思就是把m也就是4的地址保存到pk里面,这样pk就指向4的地址了,那么*pk就可以解开地址得到里面的值也就是4;
这里 就是解开pk 和pm的地址,把他们地址里面的东西拿给n。
怎么理解给n的呢,(p=&n),表示p存放n的地址,然后*就把地址里面的数值取出来,让他替换成等号右边的值,这样,右边算出来的结果8,就被赋值到p存放的地址里面了,而p本来就是存放的n地址,那么n的值自然就改变了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LYWW214
2016-09-20 · 超过16用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:24.5万
展开全部
实际就是n变成2*4=8。中间的是*号,你可能误解了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
447587096
2016-09-20 · TA获得超过5043个赞
知道大有可为答主
回答量:2504
采纳率:70%
帮助的人:1142万
展开全部
答案是8,没问题
追问
该怎么理解呢
追答
等号左边首先看括号里面p=&n,代表p是n的地址,然后*(p = &n) = *(&n) = n
再看等号右边 因为pk = &k,那么*pk = k=2, 同理*pm = m=4
那么 *pk*(*pm) = 2*4 = 8;
所以n = 2*4 = 8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式