黑马程序员技术交流社区

标题: 指针基础 [打印本页]

作者: Mr.Yan    时间: 2015-11-22 23:59
标题: 指针基础
若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是(D  )。
A. p=q;           B. *p=*q;         C. a=*q;         D. q=a;
这一题看似简单,但其实也有值得深究的地方,觉得对指针定义不是很清楚的同学会有一些帮助:
// 首先"*",在定义和应用的时候,意义是不一样的,定义时是表示定义一个int * 类型的指针,而在非定义的时候被视为一个运算符,取相应地址内所存取的内容,明白了这一点,这一题就可以做了.
首先p表示的就是a的地址,然后定义*q=p,即可以看成是*q=&(*p)    //& 和* 是可以抵消的
即是对*p取地址,而*p即是a的值,注意是值!不是地址!所以得到的就是&a.
*q=&a  ,  *p=&a.
这样看来所有的q都可用p代替,即可确定选项
(可以理解吧?)
作者: IPswhatb“is”    时间: 2015-11-24 00:02
确实需要细心的分析啊
作者: fenghun1991    时间: 2015-11-24 22:37
确实需要细心的分析啊、、、
作者: 刘邓诏初    时间: 2015-11-25 01:18
不错哈。。。。。。
作者: cube川    时间: 2015-11-25 15:12
顶一个。。
作者: 唐阿丽    时间: 2015-11-25 21:19
顶一个。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2