A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 天下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

29 个回复

倒序浏览
这不是入学测试题么?p指向的是数组的第一个元素,所以*p取到的值就是第一个元素的值,(p+1)指向的是第二个元素,*(p+1)取到的就是第二个元素的值,以此类推,自己判断答案是多少吧!我就不明说啦!
回复 使用道具 举报 1 0
答案是a  好好努力学习吧
回复 使用道具 举报
我平时都是另起一行
int *p = a;
第一眼以为是指向指针的指针
回复 使用道具 举报
Itboy 来自手机 初级黑马 2015-6-6 12:18:09
报纸
哦,我是来学习的,我的基础果然也好差啊
回复 使用道具 举报
数组其实就是指向数组元素第一个的指针
回复 使用道具 举报
去看下C语言指针部分把,这个是指针最基础的*(p+1) 与*p+的区别前面是取地址(p+1)的值,后面是取指针(P)的值后在加1
回复 使用道具 举报
选A吧   好像
回复 使用道具 举报
答案是B
回复 使用道具 举报
答案是A
分析如下:
1.指针p指向数组,所以指针变量p存的是数组首元素的地址,数组名就是数组的首地址,所以 p==a,意思就是p和a里面存的都是数组a的首地址,就是数组第一个元素1的地址
2. 指针加1不是指针的地址加1 ,而是代表指向下一个元素,数组元素7是数组的第4个元素(从零开始算),所以p+4就是指针指向了数组元素7的地址,然后*(p+1)就把指针所指向的元素的值取出来了


不知道我说清楚没有。。。。。。。。

点评

这个是对滴 +1  发表于 2015-6-7 00:02
回复 使用道具 举报
来学习的!!!
回复 使用道具 举报
a是数组a首地址,指针变量p指向数组的首地址,p+1指向数组的第二个元素的地址,p+3指向数组的第四个元素的地址,*(P+3)表示获取内存地址的内容,*(p+3)就相当a[3].
回复 使用道具 举报
指针只是指向数组首元素的地址,p+3就是指向数组第四个元素,那就是A了!只是没看懂*p=a是什么意思
回复 使用道具 举报
xiongmaoren518 发表于 2015-6-6 21:40
答案是A
分析如下:
1.指针p指向数组,所以指针变量p存的是数组首元素的地址,数组名就是数组的首地址,所 ...

这个说的很详细,就是这样的
回复 使用道具 举报
xiongmaoren518 发表于 2015-6-6 21:40
答案是A
分析如下:
1.指针p指向数组,所以指针变量p存的是数组首元素的地址,数组名就是数组的首地址,所 ...

这分数拿了么 我怎么没看到
回复 使用道具 举报
这个是指针最基础的部分了 记号优先级就会了
回复 使用道具 举报
小龙女的萝卜 来自手机 中级黑马 2015-6-7 08:12:59
17#
a  好好学习,天天向上
回复 使用道具 举报
谢谢各位大神
回复 使用道具 举报
10#楼的解释很到位!
回复 使用道具 举报
答案是A。解释:*p = a,a是数组名也是数组的首地址,a[i] 就等于 *(a+i) ,a[i]就是数组中第i+1个元素,*(a+i)也是数组中第i+1个元素,7是数组中第4个元素,所以*(p+3)
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马