黑马程序员技术交流社区

标题: 关于指针还是迷迷糊糊的,,有道小题来求教大神 [打印本页]

作者: L503254118    时间: 2015-9-12 16:27
标题: 关于指针还是迷迷糊糊的,,有道小题来求教大神
若有以下定义和语句:
int s[4][5], (*ps)[5];
ps=s; 则对s数组元素的正确引用形式是()。
A. ps+1
B. *(ps+3)
C. ps[0][2]
D. *(ps+1)+3
就是感觉B和C都是对的,ps不是首地址吗?地址加*不就是元素的值吗?可是答案为什么是C,求解求解。
作者: 韩鸿逸    时间: 2015-9-12 19:57
还没学到那。。无法帮到你= =
作者: 羊口羊口羊    时间: 2015-9-12 21:20
本帖最后由 羊口羊口羊 于 2015-9-12 21:23 编辑

引用s数组元素:*(*(ps+i))+j)       i=0, 1, 2, 3      j=0, 1, 2, 3, 4                                       
  1.    *(ps+i) = s[i]
  2.      *(*(ps+i))+j)  = s[i][j]
复制代码



作者: 18503582292    时间: 2015-9-12 21:36
ps+3代表指向第三行,*(ps+3)代表取出行的地址
作者: lumangmang    时间: 2015-9-12 23:39
二维数组可以看成特殊的一维数组 *(ps+3)是取地址
作者: zhangsimin    时间: 2015-9-13 01:04
这个需要多练习
作者: 大宝820    时间: 2015-9-13 23:33
不懂,帮顶。函数指针数组,指针函数。这些有点乱
作者: 张健康ios0826    时间: 2015-9-13 23:53
不太会,好厉害的样子

作者: wx_s1oSwEOC    时间: 2015-9-14 14:07
看到数组一个头十个大。
作者: L503254118    时间: 2015-9-15 22:14
18503582292 发表于 2015-9-12 21:36
ps+3代表指向第三行,*(ps+3)代表取出行的地址

谢谢,大家真的很给力,明白了
作者: L503254118    时间: 2015-9-15 22:18
羊口羊口羊 发表于 2015-9-12 21:20
引用s数组元素:*(*(ps+i))+j)       i=0, 1, 2, 3      j=0, 1, 2, 3, 4                                ...

好详细,谢谢,你是就业班的吗?感觉你好专业,我是文科生出身,学这个头容易大
作者: 羊口羊口羊    时间: 2015-9-15 23:43
L503254118 发表于 2015-9-15 22:18
好详细,谢谢,你是就业班的吗?感觉你好专业,我是文科生出身,学这个头容易大 ...

。。。我是新手,自学中
作者: ximdefangzh    时间: 2015-9-19 16:23
B. *(ps+3)   其实就是ps[3] 其实还是个地址  要想得到值得解引用两次
作者: 木子青    时间: 2015-9-19 22:35
这题有点难




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