c语言数组怎么定义?

什么是数组

在C语言中,数组是一种数据结构,它可以容纳一组相同类型的数据。数组中的每个元素都有一个唯一的下标,它表示数组中元素的位置。数组可以用来存储字符串、数字和其他数据类型。定义数组时,必须指定数组的大小。

数组的定义方法

定义数组的语法如下:

type name[size];

其中,type 表示数组中存储的数据类型,name 是数组的名字,size 表示数组的大小,即数组可以容纳多少个元素。例如,下面的代码定义了一个整数数组,它可以容纳 10 个整数:

int num_arr[10];

数组的元素可以通过下标来访问。数组下标从 0 开始,因此 num_arr[0] 表示数组中的第一个元素,num_arr[1] 表示第二个元素,以此类推。例如,下面的代码向 num_arr 数组的第一个元素赋值为 10:

num_arr[0] = 10;

初始化数组

定义数组时,可以通过初始化为它的元素赋初值。有以下两种方法可以进行初始化:

方法一

直接在定义数组时为它的元素赋初值。例如:

int num_arr[3] = {1, 2, 3};

上述代码定义了一个大小为 3 的整数数组 num_arr,并将其元素分别赋值为 1、2、3。

方法二

初始化数组时,还可以只给出部分元素的初始值。例如:

int num_arr[5] = {1, 2, 3};

上述代码定义一个大小为 5 的整数数组 num_arr,并将其前三个元素分别赋值为 1、2、3,其余两个元素赋值为 0。

多维数组

除了一维数组,C语言还支持多维数组。多维数组可以被看作是一个表格,其中每个元素都有唯一的行列坐标。定义一个二维数组可以使用下面的语法:

type name[rows][cols];

其中,type 表示数组中存储的数据类型,name 是数组的名字,rows 表示数组中有多少个行,cols 表示数组中有多少个列。例如:

int matrix[2][3] = {

{1, 2, 3},

{4, 5, 6}

};

上述代码定义了一个 2 行 3 列的二维数组 matrix,可以表示一个 2×3 的矩阵。我们可以使用下标来访问数组中的元素。例如,matrix[0][0] 表示数组中第 0 行第 0 列的元素,值为 1;matrix[1][2] 表示数组中第 1 行第 2 列的元素,值为 6。

数组与指针

数组名就是数组第一个元素的地址,因此数组名也可以被认为是一个指针。例如:

int num_arr[3] = {1, 2, 3};

printf("%d\n", num_arr[0]); // 输出 1

printf("%d\n", *num_arr); // 输出 1

printf("%p\n", num_arr); // 输出数组的起始地址

上述代码中,指针变量 num_arr 和 num_arr[0] 都指向数组中的第一项。因此,*num_arr 和 num_arr[0] 都可以用来访问 num_arr 数组中的第一个元素。

当一个数组作为参数传递给函数时,它会自动转换为指向数组第一个元素的指针。例如:

void print_arr(int arr[], int n)

{

int i;

for (i = 0; i < n; i++) {

printf("%d ", arr[i]);

}

}

int main()

{

int num_arr[3] = {1, 2, 3};

print_arr(num_arr, 3);

return 0;

}

上述代码中,在 print_arr 函数中,数组 arr 是以指针的形式传递给函数的,但在函数体内部,我们还是可以使用下标来访问数组中的元素。

结语

数组是C语言中非常重要的一种数据结构,它可以用来存储数字、字符串和其他数据类型。定义数组时,必须指定数组大小,数组可以是一维的,也可以是多维的。数组名可以被认为是指向数组第一个元素的指针。

后端开发标签