在C语言中,数组的定义需要指定数组的数据类型和数组的大小。以下是几种常见的数组定义方式:
一维数组的定义
声明并初始化:
```c
int arr[] = {1, 2, 3, 4, 5};
```
声明并指定大小:
```c
int arr;
```
部分初始化:
```c
int arr = {1, 2, 3};
```
省略大小并初始化:
```c
int arr[] = {1, 2, 3, 4, 5};
```
二维数组的定义
声明并初始化:
```c
int matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
```
声明并指定大小:
```c
int matrix;
```
动态数组的定义
使用`malloc`或`calloc`函数动态分配内存:
```c
int *dynamic_array = (int *)malloc(10 * sizeof(int));
```
注意事项:
数组的大小必须是一个常量表达式,不能是变量或表达式。
数组的索引从0开始。
数组元素在内存中是连续存储的。
示例代码:
```c
include include int main() { // 声明并初始化一维数组 int arr1[] = {1, 2, 3, 4, 5}; printf("arr1: "); for (int i = 0; i < 5; i++) { printf("%d ", arr1[i]); } printf("\n"); // 声明并指定大小的一维数组 int arr2; arr2 = 10; arr2 = 20; arr2 = 30; arr2 = 40; arr2 = 50; printf("arr2: "); for (int i = 0; i < 5; i++) { printf("%d ", arr2[i]); } printf("\n"); // 部分初始化一维数组 int arr3 = {1, 2, 3}; printf("arr3: "); for (int i = 0; i < 5; i++) { printf("%d ", arr3[i]); } printf("\n"); // 省略大小并初始化一维数组 int arr4[] = {1, 2, 3, 4, 5}; printf("arr4: "); for (int i = 0; i < 5; i++) { printf("%d ", arr4[i]); } printf("\n"); // 声明并初始化二维数组 int matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; printf("matrix: \n"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { printf("%d ", matrix[i][j]); } printf("\n"); } // 动态数组 int *dynamic_array = (int *)malloc(10 * sizeof(int)); for (int i = 0; i < 10; i++) { dynamic_array[i] = i + 1; } printf("dynamic_array: "); for (int i = 0; i < 10; i++) { printf("%d ", dynamic_array[i]); } printf("\n"); // 释放动态数组内存 free(dynamic_array); return 0; } ``` 通过以上示例,你可以看到C语言中数组的多种定义和初始化方式,以及如何使用动态内存分配来创建数组