一、基本概念
在C语言中,数组是一组类型相同的变量集合。数组中的每个元素都有一个唯一的下标,用于访问元素。C语言中的数组下标从0开始,最大下标为数组长度-1。
// 定义一个长度为5的整型数组 int arr[5];
以上代码定义了一个整型数组,数组名为arr,长度为5。此时所有元素默认值为0。
二、数组的初始化
在定义数组时,可以为数组元素设置默认值,这叫做数组的初始化。
// 定义并初始化一个长度为5的整型数组 int arr[5] = {1, 2, 3, 4, 5};
以上代码定义了一个长度为5的整型数组arr,并将其初始化为{1, 2, 3, 4, 5}。
如果只给部分元素设置默认值,则未设置的元素默认为0。
// 定义并初始化一个长度为5的整型数组 int arr[5] = {1, 2, 3};
以上代码定义了一个长度为5的整型数组arr,并将其初始化为{1, 2, 3, 0, 0}。
还可以将数组全部元素初始化为同一个值。
// 定义并初始化一个长度为5的整型数组,所有元素默认为0 int arr[5] = {0};
三、多维数组
C语言中也支持多维数组,即一维数组的元素也是数组。
// 定义一个2行3列的整型数组 int arr[2][3];
以上代码定义了一个2行3列的整型数组arr,它可以看成有2个一维数组,每个一维数组有3个元素。
同样可以对多维数组进行初始化。
// 定义并初始化一个2行3列的整型数组 int arr[2][3] = {{1,2,3}, {4,5,6}};
以上代码定义并初始化了一个2行3列的整型数组arr,第一行元素为{1,2,3},第二行元素为{4,5,6}。
四、数组作为函数参数
数组在C语言中可以作为函数的参数传递,可以传递整个数组或者数组的部分元素。
// 定义一个函数,计算数组元素和 int arraySum(int arr[], int size) { int sum = 0; for(int i = 0; i < size; i++) { sum += arr[i]; } return sum; } // 调用函数 int arr[5] = {1, 2, 3, 4, 5}; int sum = arraySum(arr, 5);
以上代码定义了一个计算数组元素和的函数arraySum,它接收一个整型数组arr和数组长度size作为参数。调用该函数时传递了一个长度为5的整型数组。
五、常见错误
在定义和使用数组时,常见的错误包括数组下标越界、数组未初始化、数组长度错误等。
// 定义一个长度为5的整型数组 int arr[5] = {1, 2, 3, 4, 5}; // 错误的数组下标 arr[5] = 6;
以上代码中,数组arr的最大下标为4,试图给arr[5]赋值将会引发越界错误。
六、总结
在C语言中定义数组是比较基础的操作,但是也需要注意数组下标越界、数组未初始化等问题。多维数组的定义和初始化需要注意维度顺序。数组作为函数参数传递时,可以传递整个数组或者部分元素。