C 语言 的 数组 的初始化,即数组定义的时候给数组赋初值,一共可分为两种方法,如果我们定义了数组,但没有给数组进行初始化,那么数组的内容是随机的。
type arrName[count] = {val1, val2, val3, ....};
参数 | 描述 |
---|---|
type | 数组中每一个元素的数据类型。 |
arrName | 数组的变量名。 |
count | 数组能存储的元素的个数。 |
val | 给数组初始化的值。 |
我们还可以在 {}
写上一系列的值,用来初始化数组的值。
#include <string.g>
type arrName[count];
memset(arrName, 0, count);
我们可以使用 memset 函数,给数组进行初始化,这里,我们将数组全部初始化为了 0。
memset 函数的第一个参数是数组名,第二个参数是需要初始化的值,最后一个是数组的长度。
数组未能完全初始化
#include <stdio.h>
int main(int argc, char **argv)
{
printf("嗨客网(www.haicoder.net)\n\n");
// 给数组全部初始化为 0
int arr[5] = {2};
int i = 0;
for(i = 0; i < 5; i++)
{
printf("i = %d\n", arr[i]);
}
}
程序运行后,控制台输出如下:
我们创建了一个有五个元素,每个元素都是 int 类型的数组,定义数组的同时,我们直接给数组赋初值。
最后,我们使用 printf 打印数组的内容,我们发现,只有数组的第一个元素被初始化了,其他的元素未被初始化。
创建数组时,即给数组设置初值
#include <stdio.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
// 初始化数组
int arr[5] = {2, 4, 6, 8, 10};
int i = 0;
for(i = 0; i < 5; i++)
{
printf("i = %d\n", arr[i]);
}
printf("\n");
return 0;
}
程序运行后,控制台输出如下:
我们创建了一个有五个元素,每个元素都是 int 类型 的数组,定义数组的同时,我们直接给数组赋初值。
使用 memset 初始化数组
#include <stdio.h>
#include <string.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
// 不初始化数组
char arr[5];
memset(arr, 'a', 5);
int i = 0;
for(i = 0; i < 5; i++)
{
printf("i = %c\n", arr[i]);
}
printf("\n");
return 0;
}
程序运行后,控制台输出如下:
我们定义了一个 char 类型的数组,接着,我们使用了 memset 函数将数组的每一个元素都设置为了字符 a
,最后,我们打印数组的内容,输出了所有元素都是 a
。
即,我们成功使用了 memset 函数,将数组的内容初始化为了 a
。
创建数组时,如果不给数组初始化,那么数组元素是未知的
#include <stdio.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
// 不初始化数组
int arr[5];
int i = 0;
for(i = 0; i < 5; i++)
{
printf("i = %d\n", arr[i]);
}
printf("\n");
return 0;
}
程序运行后,控制台输出如下:
这次,我们创建了数组之后,没有给数组进行初始化,我们打印数组的内容,发现数组的内容是随机的。
C 语言的数组的初始化,即数组定义的时候给数组赋初值,一共可分为两种方法,如果我们定义了数组,但没有给数组进行初始化,那么数组的内容是随机的。