C语言数组初始化

C语言数组初始化教程

C 语言数组 的初始化,即数组定义的时候给数组赋初值,一共可分为两种方法,如果我们定义了数组,但没有给数组进行初始化,那么数组的内容是随机的。

C语言数组初始化一

语法

type arrName[count] = {val1, val2, val3, ....};

参数

参数 描述
type 数组中每一个元素的数据类型。
arrName 数组的变量名。
count 数组能存储的元素的个数。
val 给数组初始化的值。

说明

我们还可以在 {} 写上一系列的值,用来初始化数组的值。

C语言数组初始化二

语法

#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]); } }

程序运行后,控制台输出如下:

02_c语言数组初始化.png

我们创建了一个有五个元素,每个元素都是 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; }

程序运行后,控制台输出如下:

03_c语言数组初始化.png

我们创建了一个有五个元素,每个元素都是 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; }

程序运行后,控制台输出如下:

04_c语言数组初始化.png

我们定义了一个 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; }

程序运行后,控制台输出如下:

05_c语言数组初始化.png

这次,我们创建了数组之后,没有给数组进行初始化,我们打印数组的内容,发现数组的内容是随机的。

C语言数组初始化总结

C 语言的数组的初始化,即数组定义的时候给数组赋初值,一共可分为两种方法,如果我们定义了数组,但没有给数组进行初始化,那么数组的内容是随机的。