📜  在C中初始化变量大小的数组(1)

📅  最后修改于: 2023-12-03 15:07:52.767000             🧑  作者: Mango

在 C 中初始化变量大小的数组

在 C 语言中,数组是一组相同类型的数据元素的集合,使用数组可以在不使用太多变量的情况下存储大量的数据。在 C 中,可以使用变量大小的数组来存储大小在程序运行期间才知道的数据。在本文中,我们将介绍如何在 C 中初始化变量大小的数组。

定义变量大小的数组

定义一个变量大小的数组的语法如下:

int variable_size_array[size];

其中,size 是运行时确定的变量,定义了数组的大小。这种类型的数组可以在程序运行时根据需要创建。例如:

int size;
printf("请输入数组大小:");
scanf("%d", &size);
int arr[size];

上面的代码中,用户可以在程序运行时输入数组的大小,然后根据输入的大小创建一个数组。

初始化变量大小的数组

在 C 中,可以使用以下两种方法初始化变量大小的数组:

方法一:使用循环语句

使用循环语句初始化数组是一种常见的做法。例如,以下代码将一个变量大小的数组初始化为一个等差数列:

int size, i;
printf("请输入数组大小:");
scanf("%d", &size);
int arr[size];
arr[0] = 1;
for (i = 1; i < size; i++) {
    arr[i] = arr[i - 1] + 2;
}

上面的代码中,我们使用 for 循环语句来从数组的第二个元素开始计算等差数列的值,并将其存储到数组中。

方法二:使用 memset 函数

使用 memset 函数可以将一个数组初始化为零或某个固定的值。例如,以下代码将一个变量大小的数组初始化为零:

int size;
printf("请输入数组大小:");
scanf("%d", &size);
int arr[size];
memset(arr, 0, sizeof(arr));

上面的代码中,使用 memset 函数将整个数组初始化为零。

示例代码

下面是一个完整的示例代码,展示了如何定义和初始化一个变量大小的数组,以及如何使用这个数组:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    int size, i;
    printf("请输入数组大小:");
    scanf("%d", &size);

    // 定义变量大小的数组
    int arr[size];

    // 使用循环语句初始化数组为等差数列
    arr[0] = 1;
    for (i = 1; i < size; i++) {
        arr[i] = arr[i - 1] + 2;
    }

    // 输出数组
    printf("数组为:");
    for (i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    // 使用 memset 函数初始化数组为零
    memset(arr, 0, sizeof(arr));

    // 输出数组
    printf("数组为:");
    for (i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}
总结

本文介绍了如何在 C 中定义和初始化变量大小的数组。使用这种类型的数组可以在程序运行时根据需要创建数组,并且可以使用循环语句或 memset 函数来初始化数组。如果您使用这种类型的数组,请注意数组的大小不要超过系统可用内存。