黑马程序员技术交流社区

标题: 指针迷惑了,新人求助,最好详细点 [打印本页]

作者: 天下1083    时间: 2015-6-6 09:44
标题: 指针迷惑了,新人求助,最好详细点
本帖最后由 天下1083 于 2015-6-7 08:19 编辑

设有定义int a[]={1,3,5,7,9},*p=a;结果为7的表达式是(  )。
A) *(p+3)
B) *(p+4)
C) *p+3
D) *p+4
作者: 张晓珊    时间: 2015-6-6 09:49
这不是入学测试题么?p指向的是数组的第一个元素,所以*p取到的值就是第一个元素的值,(p+1)指向的是第二个元素,*(p+1)取到的就是第二个元素的值,以此类推,自己判断答案是多少吧!我就不明说啦!
作者: 任伟    时间: 2015-6-6 10:05
答案是a  好好努力学习吧
作者: talent123    时间: 2015-6-6 11:39
我平时都是另起一行
int *p = a;
第一眼以为是指向指针的指针
作者: Itboy    时间: 2015-6-6 12:18
哦,我是来学习的,我的基础果然也好差啊
作者: Dariel    时间: 2015-6-6 19:17
数组其实就是指向数组元素第一个的指针
作者: 为梦想而生    时间: 2015-6-6 21:16
去看下C语言指针部分把,这个是指针最基础的*(p+1) 与*p+的区别前面是取地址(p+1)的值,后面是取指针(P)的值后在加1
作者: woaidd99    时间: 2015-6-6 21:33
选A吧   好像
作者: xiongmaoren518    时间: 2015-6-6 21:33
答案是B
作者: xiongmaoren518    时间: 2015-6-6 21:40
答案是A
分析如下:
1.指针p指向数组,所以指针变量p存的是数组首元素的地址,数组名就是数组的首地址,所以 p==a,意思就是p和a里面存的都是数组a的首地址,就是数组第一个元素1的地址
2. 指针加1不是指针的地址加1 ,而是代表指向下一个元素,数组元素7是数组的第4个元素(从零开始算),所以p+4就是指针指向了数组元素7的地址,然后*(p+1)就把指针所指向的元素的值取出来了


不知道我说清楚没有。。。。。。。。
作者: 中平    时间: 2015-6-6 22:44
来学习的!!!
作者: hi虚无缥缈    时间: 2015-6-6 22:55
a是数组a首地址,指针变量p指向数组的首地址,p+1指向数组的第二个元素的地址,p+3指向数组的第四个元素的地址,*(P+3)表示获取内存地址的内容,*(p+3)就相当a[3].
作者: ⒈苆都s.兲憶    时间: 2015-6-6 23:29
指针只是指向数组首元素的地址,p+3就是指向数组第四个元素,那就是A了!只是没看懂*p=a是什么意思
作者: 七尺阳光    时间: 2015-6-6 23:51
xiongmaoren518 发表于 2015-6-6 21:40
答案是A
分析如下:
1.指针p指向数组,所以指针变量p存的是数组首元素的地址,数组名就是数组的首地址,所 ...

这个说的很详细,就是这样的
作者: 恩赐_RWQqZ    时间: 2015-6-7 00:04
xiongmaoren518 发表于 2015-6-6 21:40
答案是A
分析如下:
1.指针p指向数组,所以指针变量p存的是数组首元素的地址,数组名就是数组的首地址,所 ...

这分数拿了么 我怎么没看到
作者: 晗修    时间: 2015-6-7 01:52
这个是指针最基础的部分了 记号优先级就会了
作者: 小龙女的萝卜    时间: 2015-6-7 08:12
a  好好学习,天天向上
作者: 天下1083    时间: 2015-6-7 08:18
谢谢各位大神
作者: langxiao505    时间: 2015-6-7 08:48
10#楼的解释很到位!
作者: 伏案灯火    时间: 2015-6-7 11:13
答案是A。解释:*p = a,a是数组名也是数组的首地址,a[i] 就等于 *(a+i) ,a[i]就是数组中第i+1个元素,*(a+i)也是数组中第i+1个元素,7是数组中第4个元素,所以*(p+3)
作者: xiongmaoren518    时间: 2015-6-7 15:19
恩赐_RWQqZ 发表于 2015-6-7 00:04
这分数拿了么 我怎么没看到

什么意思?什么分数拿了么
作者: fanxing    时间: 2015-6-7 20:03
看来得看看指针了
作者: 这是829    时间: 2015-6-9 00:08
大家讲解的很不错啊
作者: 马贺飞    时间: 2015-6-12 09:42
果断是a啊
作者: aofex    时间: 2015-6-12 21:02
我都选C了  我去  唉
作者: 李雄峰    时间: 2015-6-12 21:18
大家讲的不错:hug:
作者: yang2015    时间: 2015-6-12 22:09
学习学习。。。
作者: chensc    时间: 2015-6-12 22:58
学习学习!
作者: 丁铭检    时间: 2015-6-19 09:30
这样的你就直接将指针p看成数组a就容易理解了。。




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