大学C++问题。第15题求:B为什么错了?还有D是什么意思?

 我来答
张未来T6
2016-01-23 · TA获得超过484个赞
知道小有建树答主
回答量:261
采纳率:100%
帮助的人:51.2万
展开全部
就是B错了。
*b=&a 就是定义一个字符指针b,它是指向字符变量a的地址。
**c=&b 其中,**c就是地址的地址,也就是一个变量,**是可以抵消的,就好像*和&是可以抵消的一样。&b就是代表b指向的地址所存储的变量。因为b就是指针,对一个指针取址,就是代表这个指针所指向的变量。明白了这一点,ABCD就很好判断了。正确的不说,B中,a==*c 题干中定义的是**c,c就是代表的变量。并不是指针,**只是干扰的,判断变量a和一个*变量是否相等,肯定是错误的。墨迹了好多。希望你能明白。
GTA小鸡
高粉答主

2016-01-23 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
c是二级指针,*c的内容应该为一级指针char*,和a类型char不符,无法比较。
&a=*&b,令a的地址等于b的地址的内容,相当于&a=b。a是一个变量,这样强行改变a的地址的操作是非常野蛮的,很可能导致意想不到的后果。虽然在此例中b就指向a的地址,实际上执行的是&a=&a,不会产生影响,但不代表其他程序也不会产生后果。这种语句虽然从语法上是正确的,但操作是绝对错误的,是绝对需要被禁止的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式