19、C语言数组:多维数组与指针数组详解

C语言数组:多维数组与指针数组详解

1. 多维数组基础

1.1 数组名的含义

一维数组名的值是一个指针常量,其类型为“指向元素类型的指针”,并指向数组的第一个元素。对于多维数组,如 int matrix[3][10]; ,这里的 matrix 是一个一维数组,包含三个元素,每个元素又是一个包含十个整数的数组。 matrix 的值是一个指向包含十个整数的数组的指针,它指向第一个这样的数组。

1.2 下标操作

要从多维数组中识别单个元素,必须为每个维度提供一个下标,且下标要按照声明中维度的顺序给出,每个下标都要用方括号括起来。例如,对于 int matrix[3][10]; ,表达式 matrix[1][5] 访问的是特定元素。

实际上,下标是一种伪装的间接寻址表达式。以 matrix 为例, matrix 类型是“指向包含十个整数的数组的指针”, matrix + 1 同样是“指向包含十个整数的数组的指针”,但它指向矩阵的不同行,因为值 1 会按包含十个整数的数组的大小进行缩放。表达式 *(matrix + 1) 识别出一个特定的包含十个整数的数组,其类型是“指向整数的指针”。进一步, *(matrix + 1) + 5 指向该数组中偏移 5 个整数的位置,而 *( *(matrix + 1) + 5 ) 则访

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值