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

    文章

    507

    浏览量

    28967
  • 指针
    +关注

    关注

    1

    文章

    480

    浏览量

    70553
  • 二维
    +关注

    关注

    0

    文章

    40

    浏览量

    11983
  • 数组
    +关注

    关注

    1

    文章

    417

    浏览量

    25940

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    三维移动

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

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

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

    指针数组数组指针的区别

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

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

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

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

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

    c语言二数组定义及其规则详解

    数组只有一个下标,,称为一数组,其数组元素也称为单下标
    发表于 11-16 08:49 2.2w次阅读
    c语言二<b class='flag-5'>维</b><b class='flag-5'>数组</b>定义及其规则详解

    数组指针指向错误应该如何纠正

    本文档的主要内容详细介绍的是二数组指针指向错误应该如何纠正。
    发表于 12-13 16:01 12次下载
    二<b class='flag-5'>维</b><b class='flag-5'>数组</b>的<b class='flag-5'>指针</b>指向错误应该如何纠正

    指针数组数组指针的区别

    这里我们区分两个重要的概念:指针数组数组指针
    的头像 发表于 06-29 15:30 2w次阅读
    <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.5w次阅读
    理解函数<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 2656次阅读

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

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

    C语言二数组的定义

    按以上定义,数组a课用的下标范围为0~2,“列下标”的范围为0~3,。用a[3][4]表示元素显然超过了数组的范围。 读者要严格区分在
    的头像 发表于 03-09 11:38 2168次阅读

    指针数组和二数组有没有区别

    。 首先是指针数组 s1。 s1 本身是个一数组数组个元素,每个元素都是个
    的头像 发表于 11-24 11:12 143次阅读

    数组下标为什么可以是负数

    a[3],数组名 a 作为数组首元素地址,下标 3 表示从这个地址开始向后移动 3 个元素,至于具体是几个字节,得看什么元素。 所以 a[3] 完全等价于 *(a + 3),甚至把代
    的头像 发表于 12-20 11:18 70次阅读