黑马程序员技术交流社区
标题:
关于C语言指针的问题
[打印本页]
作者:
greatboygirl
时间:
2015-5-7 20:45
标题:
关于C语言指针的问题
学指针以来一看到指针就发憷
一道基础测试题 求解 要求带分析分析
1、设有定义int a[]={1,3,5,7,9},*p=a;结果为7的表达式是()。
A) *(p+3)
B) *(p+4)
C) *p+3
D) *p+4
作者:
好梦留人
时间:
2015-5-7 21:06
选A吧,*(p+3)是直接取p后面第3个位置的值
作者:
ios专用
时间:
2015-5-7 22:21
没有*p+的写法,所以c d错误,数组是从0开始,所以*(P+3)就是第4个数字7
作者:
cui0wei0
时间:
2015-5-7 22:35
a[3] = 7;*(p+3)就是p[3]
作者:
张恒宇
时间:
2015-5-7 23:56
本帖最后由 张恒宇 于 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....个人观点
作者:
梦初醉
时间:
2015-5-8 00:25
A 指针*(p+1) 表示的是地址中 *p指向的数组地址 加4个字节 {(*p)=1,(*(p+1))=3,(*(p+2))=5,(*(p+3))=7,(*(p+4))=9}
作者:
CornerFly
时间:
2015-5-8 11:07
选A *P= a就是把数组的首地址赋值给指针P,通过P+3 得到第四个元素的地址,再*一下,取出第四个元素的值
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2