在 C 语言中,数组可以按照不同的标准进行分类,主要有以下几种:
一、按照元素类型分类
- 整型数组
- 由整数类型的元素组成。例如:
int arr[5];
定义了一个包含 5 个整数元素的数组。
- 由整数类型的元素组成。例如:
- 浮点型数组
- 元素为浮点型数据。比如:
float arr[10];
是一个有 10 个浮点数元素的数组。
- 元素为浮点型数据。比如:
- 字符型数组
- 以字符为元素。如:
char arr[20];
可用于存储字符串或单个字符。
- 以字符为元素。如:
二、按照维数分类
- 一维数组
- 是最简单的数组形式,只有一个下标。例如:
int a[10];
,可以通过a[i]
的形式访问其中的元素,其中i
是下标,取值范围从 0 到 9。
- 是最简单的数组形式,只有一个下标。例如:
- 二维数组
- 有两个下标,可以看作是由多个一维数组组成的数组。比如:
int b[3][4];
表示一个 3 行 4 列的二维数组,可以通过b[i][j]
来访问其中的元素。
- 有两个下标,可以看作是由多个一维数组组成的数组。比如:
- 多维数组
- 具有三个及以上下标的数组。例如:
int c[2][3][4];
是一个三维数组,可以想象为多个二维数组组成的立体结构,通过c[i][j][k]
的形式访问元素。
- 具有三个及以上下标的数组。例如:
三、按照存储方式分类
- 静态数组
- 在程序编译时就确定了大小,并且在整个程序运行期间其大小不能改变。例如:
static int arr[5];
,静态数组存储在静态存储区,生命周期与整个程序相同。
- 在程序编译时就确定了大小,并且在整个程序运行期间其大小不能改变。例如:
- 动态数组
- 在程序运行时根据实际需求动态分配内存空间大小。可以使用
malloc
、calloc
等函数来分配内存。例如:int *arr = (int *)malloc(n * sizeof(int));
,其中n
是动态确定的数组大小。动态数组存储在堆区,需要手动释放内存以避免内存泄漏。
- 在程序运行时根据实际需求动态分配内存空间大小。可以使用