在C语言中,数组的定义需要指定数组的数据类型和数组的大小。以下是几种常见的数组定义方式:
- 一维数组的定义 :
- 声明并初始化 :
int arr[] = {1, 2, 3, 4, 5};
```
- **声明并指定大小** <b class="card40_249__sup_a7f6" data-sup="sup">3</b>:
```c
int arr;
```
- **部分初始化** <b class="card40_249__sup_a7f6" data-sup="sup">3</b>:
```c
int arr = {1, 2, 3};
```
- **省略大小并初始化** <b class="card40_249__sup_a7f6" data-sup="sup">3</b>:
```c
int arr[] = {1, 2, 3, 4, 5};
```
2. **二维数组的定义** <b class="card40_249__sup_a7f6" data-sup="sup">2</b>:
- **声明并初始化** <b class="card40_249__sup_a7f6" data-sup="sup">3</b>:
```c
int matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
```
- **声明并指定大小** <b class="card40_249__sup_a7f6" data-sup="sup">3</b>:
```c
int matrix;
```
3. **动态数组的定义** :
- 使用`malloc`或`calloc`函数动态分配内存<b class="card40_249__sup_a7f6" data-sup="sup">2</b>:
```c
int *dynamic_array = (int *)malloc(10 * sizeof(int));
```
### 注意事项<b class="card40_249__sup_a7f6" data-sup="sup">6</b>:
- 数组的大小必须是一个常量表达式,不能是变量或表达式<b class="card40_249__sup_a7f6" data-sup="sup">1</b>。
- 数组的索引从0开始<b class="card40_249__sup_a7f6" data-sup="sup">4</b>。
- 数组元素在内存中是连续存储的。
### 示例代码<b class="card40_249__sup_a7f6" data-sup="sup">6</b>:
```c
#include <stdio.h>
#include <stdlib.h>
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语言中数组的多种定义和初始化方式,以及如何使用动态内存分配来创建数组