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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© greatboygirl 中级黑马   /  2015-5-7 20:45  /  1212 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学指针以来一看到指针就发憷

一道基础测试题 求解 要求带分析分析
1、设有定义int a[]={1,3,5,7,9},*p=a;结果为7的表达式是()。
A) *(p+3)
B) *(p+4)
C) *p+3
D) *p+4

6 个回复

倒序浏览
选A吧,*(p+3)是直接取p后面第3个位置的值
回复 使用道具 举报
没有*p+的写法,所以c d错误,数组是从0开始,所以*(P+3)就是第4个数字7
回复 使用道具 举报
a[3] = 7;*(p+3)就是p[3]
回复 使用道具 举报
本帖最后由   张恒宇 于 2015-5-7 23:59 编辑

*p+3是对p先取值再+3,而*(p+3)是将p的位置后移3位!*p从a[0]取值即*(p+3)=a[3]=5!所以应该是*(p+4)=a[4]=7....个人观点
回复 使用道具 举报
A  指针*(p+1) 表示的是地址中 *p指向的数组地址 加4个字节   {(*p)=1,(*(p+1))=3,(*(p+2))=5,(*(p+3))=7,(*(p+4))=9}
回复 使用道具 举报
选A  *P= a就是把数组的首地址赋值给指针P,通过P+3 得到第四个元素的地址,再*一下,取出第四个元素的值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马