三维数组如何用下标表示指针

描述

看个三维数组的笔试题。

指针

给定下列声明,把下列各个指针表达式转换为下标表达式。

这是最近学生在做笔试题时候遇到的,先别管这个三维数组有没有实用价值,既然出现了,还是得做。

三维数组可以看成是由多个二维数组组成。

指针

比如题目中声明的这个,就是由4个5行3列的二维数组组成。把这些二维数组编个号,就是 0 1 2 3。

三维数组比二维数组更加复杂一点,我们先来搞懂几个概念。

在三维数组中:

数组名 array 表示第 0 个二维数组的地址;

array[0] 表示第 0 个二维数组第 0 行的地址;

array[0][0] 表示第 0 个二维数组第 0 行第 0 个元素的地址;

array[0][0][0] 就是具体的元素,它不表示地址。

再来看题目。

指针

*array。array表示第 0 个二维数组地址,*array表示第 0 个二维数组第 0 行的地址,下标表示法 array[0]。

*(array + 2) 。array + 2 表示第2个二维数组的地址,再加星号,就是第2个二维数组首行地址,下标表示法 array[2]。

*(array + 1) + 4。 array + 1表示第 1 个二维数组的地址,加上星号,表示第1个二维数组首行地址,再加4,表示第4行地址,下标表示法 array[1] + 4。

第四题,在第三题的基础上又加上了星号,含义再次改变,表示第 1 个二维数组,第 4 行首元素的地址,下标表示法 array[1][4]。

第五题最简单,直接表示第 3 个二维数组第 1 行第 2 个元素,array[3][1][2]。

第六题虽然也有三个星号,但是写法跟上面略有区别。*array 表示第 0 个二维数组首行地址,+1表示第 1 行地址,再加星号,表示第一行首元素地址,加 2 表示第一行第二个元素地址,

最后一个星号就是取值,用下标表示就是array[0][1][2]。

最后三个留给大家练习使用。

指针

在数组和指针的概念中,* 和 [] 有相同的意思,虽然有时候不是真正的取值操作,但是可以改变地址的含义。比如题目中,出现 1 个星号,表示行的地址,出现两个星号,表示元素的地址,出现三个星号,就是具体的元素。

审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分