C 语言数据结构基石:揭开数组名的面纱与计算数组大小
各类资料学习下载合集
https://pan.quark.cn/s/8c91ccb5a474
在前面的文章中,我们已经学习了 C 语言一维数组的定义和初始化。我们知道数组是用来存储一系列相同类型数据的集合,并通过下标来访问每个元素。但是,除了通过下标访问单个元素,数组名本身在 C 语言中也有着特殊的含义和用途。
理解数组名是什么,以及如何确定数组的总大小和元素个数,对于有效地使用数组至关重要。本文将深入探讨数组名的概念及其在计算数组大小中的应用。
1. 数组名是什么?它代表什么?
在 C 语言中,数组名不仅仅是一个标识符,它在大多数情况下代表着数组第一个元素所在的内存地址,也就是数组的首地址或基地址。
可以将数组想象成一栋楼房,里面有很多结构相同的房间(数组元素)。数组名就像这栋楼房的总门牌号,通过这个门牌号,你可以找到这栋楼的起始位置。每个房间(元素)都有自己的房间号(下标),从 0 开始编号。数组名代表的地址就是第一个房间(下标为 0 的元素)的地址。
重要概念: 数组名代表整个数组空间的首地址。
2. 观察数组名和首元素地址
我们可以通过打印数组名来验证它代表的是数组的首地址。在 C 语言中,使用 %p
格式说明符来打印地址。
代码案例 1:打印数组名和元素地址
#include <stdio.h>int main() {printf("--- 观察数组名和元素地址 ---\n");int my_array[5] = {10, 20, 30, 40, 50}; // 定义并初始化一个包含 5 个整数的数组// 打印数组名 (代表整个数组的首地址)printf("数组名 my_array 的值 (通常是首地址): %p\n", my_array);// 打印第一个元素的地址printf("第一个元素 my_array[0] 的地址: %p\n", &my_array[0]); // 使用 & 运算符获取地址// 打印其他元素的地址,观察地址的连续性printf("其他元素的地址:\n");for (int i = 0; i < 5; i++) {printf(" my_array[%d] 的地址: %p\n", i, &my_array[i]);}return