二维数组

理解

二维数据就是一维数组的数组 通过连续的空间存储数据

定义:

数据类型 数组名[行][列]; int arr[3][2] 1

arr[3][2]图解 ![](file:///C:/Users/stephen/AppData/Roaming/marktext/images/2025-08-31-14-14-13-image.png?msec=1756620858830)![](file:///C:/Users/stephen/AppData/Roaming/marktext/images/2025-08-31-14-15-25-image.png?msec=1756620930649)

完全初始化

![](file:///C:/Users/stephen/AppData/Roaming/marktext/images/2025-08-31-14-20-09-image.png?msec=1756621212471)

部分初始化

之后的数据默认为0

![](file:///C:/Users/stephen/AppData/Roaming/marktext/images/2025-08-31-14-20-41-image.png?msec=1756621246429)

访问数据修改数据(通过下标访问)

![](file:///C:/Users/stephen/AppData/Roaming/marktext/images/2025-08-31-14-23-22-image.png?msec=1756621405935)

arr[0][2] = 7;

注意点:数据初始化在主函数外默认0;

真题

![](file://C:\Users\stephen\AppData\Roaming\marktext\images\2025-08-31-15-09-00-image.png?msec=1756624140428) ![](file://C:\Users\stephen\AppData\Roaming\marktext\images\2025-08-31-15-09-19-image.png?msec=1756624159932) ![](file://C:\Users\stephen\AppData\Roaming\marktext\images\2025-08-31-15-09-38-image.png?msec=1756624178191)

![](file://C:\Users\stephen\AppData\Roaming\marktext\images\2025-08-31-15-11-15-image.png?msec=1756624275858)

提升

  • (2024年3月 四级 第4题) 对二维数组 int arr[3][16];,则 arr[1] 占用内存的大小为( )字节?

    • A. 4

    • B. 16

    • C. 48

    • D. 64

    • 答案:D

    • 解析: 本题考查二维数组的内存分配。arr[1] 是一个一维数组,包含 16 个 int 元素。在 C++ 中,一个 int 通常占 4 字节,因此 arr[1] 的大小为 16 * 4 = 64 字节4。

  • (2024年3月 四级 第5题) 对二维数组 int arr[3][16];,若 arr 的地址是 0x28cbc0,则 arr[1] 的值是?

    • A. 0x28cbc4

    • B. 0x28cbd0

    • C. 0x28cc00

    • D. 不确定

    • 答案:C

    • 解析: 二维数组在内存中是按行连续存放的。arr[0] 的大小是 16 * 4 = 64 字节,即 0x40 字节。arr[1] 的地址是 arr[0] 的地址加上 arr[0] 的大小:0x28cbc0 + 0x40 = 0x28cc004。

  • (2024年3月 四级 第20题 判断题) 定义数组 int a[2024][3][16]={2,0,2,4,3,1,6};,则 cout << a[2023][2][15] 的结果不确定。

    • 答案:错误

    • 解析: 数组初始化时,提供的初始值会按内存顺序依次赋值,未明确初始化的元素会被自动初始化为0。因此,a[2023][2][15] 的位置远超提供的初始值,其值确定地为 04。

0 条评论

目前还没有评论...