日志14

二维数组与多维数组

一、 二维数组

概念:二维数组可以看作是一个表格,有行和列的概念。它是一种特殊的数组,其元素本身也是数组。例如,int arr[3][4]可以理解为有3行4列的整数数组,总共可以存储3 * 4 = 12个整数。

1.初始化:

(1)按行初始化:可以像int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};这样初始化。其中,{1, 2, 3}是第一行元素的初始化列表,{4, 5, 6}是第二行元素的初始化列表。

(2)部分初始化:如果提供的初始化值少于数组元素总数,其余元素会被初始化为相应类型的默认值。

例如,int arr[2][3] = {{1, 2}, {3}};

第一行的前两个元素为1和2,第三个元素为0;第二行第一个元素为3,后两个元素为0。

2.元素访问:通过两个下标来访问元素,第一个下标表示行,第二个下标表示列。例如,在int arr[3][4]中,arr[1][2]表示访问第二行(下标从0开始,所以是1)第三列(下标为2)的元素。

3.与指针的关系:二维数组名也可以看作是指向数组(行)的指针。例如,对于int arr[3][4],arr可以看作是一个指向包含4个整数的数组的指针,arr + 1会指向第二行(因为arr所指向的类型大小是4 * sizeof(int))。

4.作为函数参数:当二维数组作为函数参数时,函数形参的定义方式有多种。一种常见的方式是指定第二维的大小,如void func(int arr[][4], int rows),这样编译器才能正确地计算元素的位置。

二、多维数组(以三维数组为例)

1.概念:三维数组可以看作是一个“立方体”结构,在二维数组的基础上增加了一个维度。

例如,int arr[2][3][4]可以理解为有2个“平面”,每个平面是一个3行4列的二维数组,总共可以存储2 * 3 * 4 = 24个整数。

2.初始化:初始化方式类似于二维数组,但需要更多的嵌套括号来表示不同维度。

例如,int arr[2][3][4] = {{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}, {{13, 14, 15, 16}, {17, 18, 19, 20}, {21, 22, 23, 24}}};。

3.元素访问:通过三个下标来访问元素,例如,arr[1][2][3]表示访问第二个平面(下标从0开始,所以是1)的第三行(下标为2)的第四列(下标为3)的元素。

4.与指针的关系:三维数组名同样与指针有关,它是一个指向二维数组的指针。其指针运算和元素定位相对更加复杂,因为涉及到更多的维度和偏移量计算。

5.作为函数参数:和二维数组类似,需要指定除第一维以外的其他维度大小,以便编译器正确处理元素的位置,如void func(int arr[][3][4], int num_planes)。这种要求是因为在传递数组时,数组会退化为指针,编译器需要知道后续维度的大小来正确地计算内存偏移量。

全部评论

相关推荐

哈哈哈,你是老六:百度去年裁员分评不好,赶紧弄点红包
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
4344次浏览 34人参与
# 你的实习产出是真实的还是包装的? #
1014次浏览 26人参与
# 巨人网络春招 #
11132次浏览 221人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
6842次浏览 35人参与
# 简历第一个项目做什么 #
31227次浏览 312人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186301次浏览 1113人参与
# 米连集团26产品管培生项目 #
3722次浏览 163人参与
# 面试紧张时你会有什么表现? #
30312次浏览 188人参与
# 简历中的项目经历要怎么写? #
309297次浏览 4146人参与
# 网易游戏笔试 #
6300次浏览 83人参与
# 职能管理面试记录 #
10674次浏览 59人参与
# 把自己当AI,现在最消耗你token的问题是什么? #
6809次浏览 154人参与
# 从哪些方向判断这个offer值不值得去? #
56693次浏览 357人参与
# 腾讯音乐求职进展汇总 #
160376次浏览 1105人参与
# 小红书求职进展汇总 #
226828次浏览 1356人参与
# AI时代,哪些岗位最容易被淘汰 #
62254次浏览 723人参与
# 你怎么看待AI面试 #
179196次浏览 1160人参与
# 正在春招的你,也参与了去年秋招吗? #
362437次浏览 2631人参与
# 你的房租占工资的比例是多少? #
92119次浏览 896人参与
# 机械求职避坑tips #
94392次浏览 567人参与
# 校招笔试 #
465713次浏览 2948人参与
# 面试官最爱问的 AI 问题是...... #
27023次浏览 833人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务