c语言数组定义

在C语言中,数组的定义需要指定数组的数据类型和数组的大小。以下是几种常见的数组定义方式:

  1. 一维数组的定义
  • 声明并初始化
    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 = 50printf("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语言中数组的多种定义和初始化方式,以及如何使用动态内存分配来创建数组

Top