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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

若有以下定义和语句:
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,求解求解。

13 个回复

倒序浏览
还没学到那。。无法帮到你= =
回复 使用道具 举报
本帖最后由 羊口羊口羊 于 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]
复制代码


回复 使用道具 举报
ps+3代表指向第三行,*(ps+3)代表取出行的地址
回复 使用道具 举报
二维数组可以看成特殊的一维数组 *(ps+3)是取地址
回复 使用道具 举报
这个需要多练习
回复 使用道具 举报
不懂,帮顶。函数指针数组,指针函数。这些有点乱
回复 使用道具 举报
不太会,好厉害的样子
回复 使用道具 举报
看到数组一个头十个大。
回复 使用道具 举报
18503582292 发表于 2015-9-12 21:36
ps+3代表指向第三行,*(ps+3)代表取出行的地址

谢谢,大家真的很给力,明白了
回复 使用道具 举报
羊口羊口羊 发表于 2015-9-12 21:20
引用s数组元素:*(*(ps+i))+j)       i=0, 1, 2, 3      j=0, 1, 2, 3, 4                                ...

好详细,谢谢,你是就业班的吗?感觉你好专业,我是文科生出身,学这个头容易大
回复 使用道具 举报
L503254118 发表于 2015-9-15 22:18
好详细,谢谢,你是就业班的吗?感觉你好专业,我是文科生出身,学这个头容易大 ...

。。。我是新手,自学中
回复 使用道具 举报
B. *(ps+3)   其实就是ps[3] 其实还是个地址  要想得到值得解引用两次
回复 使用道具 举报
这题有点难
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马