0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

学益得智能硬件 来源:学益得智能硬件 2023-11-14 10:38 次阅读

看个三维数组的笔试题。

3e4d1c4e-812f-11ee-939d-92fbcf53809c.png

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

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

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

3e69821c-812f-11ee-939d-92fbcf53809c.png

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

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

在三维数组中:

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

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

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

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

再来看题目。

3e4d1c4e-812f-11ee-939d-92fbcf53809c.png

*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]。

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

3eb4b25a-812f-11ee-939d-92fbcf53809c.png

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

审核编辑:汤梓红

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

    关注

    1

    文章

    466

    浏览量

    28767
  • 指针
    +关注

    关注

    1

    文章

    473

    浏览量

    70361
  • 二维
    +关注

    关注

    0

    文章

    38

    浏览量

    11953
  • 数组
    +关注

    关注

    1

    文章

    409

    浏览量

    25595

原文标题:三维数组,如何用下标表示指针

文章出处:【微信号:学益得智能硬件,微信公众号:学益得智能硬件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言中指针数组数组指针的区别

    指针数组之间存在着紧密的关系。在本文中,我们将探讨指针数组的关系、指针算术和数组遍历、多维
    发表于 08-17 15:29 280次阅读

    三维移动

    德国pi公司的三维移动平台如何用labview控制呢?
    发表于 03-05 13:00

    何用labview在三维图里画多条线?

    何用labview在三维图里画多条线?
    发表于 11-08 12:08

    指针数组数组指针的区别

    int (*p)[4];// 定义一个数组指针,指向含4个元素的一数组数组元素是int类型。int *p[4];// 定义一个
    发表于 07-15 21:41

    三维参数图输入矩阵的含义

    三维参数图画一个三维图时,输入矩阵X,Y,Z都表示啥?
    发表于 10-07 17:39

    C语言二数组的定义和引用

    表达式2]其中常量表达式1表示第一下标的长度,常量表达式2 表示第二下标的长度。例如:int
    发表于 07-12 08:55

    三维快速建模技术与三维扫描建模的应用

    `三维快速建模技术与三维扫描建模的应用随着数字化测量的发展,三维激光扫描仪能够快速地以多角度、高效、高精度方式获取物体的表面三维数据,可以用于物体的
    发表于 08-07 11:14

    广西扫描服务三维检测三维扫描仪

    `广西扫描服务三维检测三维扫描仪中科院广州电子的Creaform便携式激光三维扫描仪,包括便携式GoSCAN全彩三维扫描仪,便携式HandySCAN工业级
    发表于 08-29 14:42

    请问在stm32中支持三维数组吗?

    请问在stm32中支持三维数组吗?如何用查表法取值吗?
    发表于 03-26 03:44

    三维设计应用案例

    CAD是目前工业制造产品设计的重要软件之一,广泛应用于机械、建筑等领域。而常用的CAD软件,也就是所谓的三维制图软件,较二的图纸和二的绘图软件,三维CAD软件能够更加直观、准确地反
    发表于 07-03 07:06

    指针数组数组指针的区别

    这里我们区分两个重要的概念:指针数组数组指针
    的头像 发表于 06-29 15:30 1.9w次阅读
    <b class='flag-5'>指针</b><b class='flag-5'>数组</b>和<b class='flag-5'>数组</b><b class='flag-5'>指针</b>的区别

    理解函数指针、函数指针数组、函数指针数组指针

    理解函数指针、函数指针数组、函数指针数组指针
    的头像 发表于 06-29 15:38 1.4w次阅读
    理解函数<b class='flag-5'>指针</b>、函数<b class='flag-5'>指针</b><b class='flag-5'>数组</b>、函数<b class='flag-5'>指针</b><b class='flag-5'>数组</b>的<b class='flag-5'>指针</b>

    二维数组数组指针以及指针数组

    二维数组数组指针以及指针数组
    的头像 发表于 08-16 09:02 2260次阅读

    【C语言进阶】“数组指针”和“指针数组”都是啥跟啥?

    【C语言进阶】“数组指针”和“指针数组”都是啥跟啥?
    的头像 发表于 08-31 13:21 1678次阅读

    何用指针数组数组指针表示二维数组

    a是一个二维数组,3 行 4 列,一共 12 个元素。
    的头像 发表于 03-06 11:38 850次阅读