C语言数组入门之数组的声明与二维数组的模拟
数组的声明
在C语言中,数组是一种有序的集合,所有元素都具有相同类型的数据结构。数组一旦声明,其大小就固定无法改变。数组的声明格式如下:
type name[length];
其中,type
为数组中元素的类型,name
为数组名,length
为数组长度。
数组名是一个指向数组首元素的常量指针,可以使用下标访问数组中的元素,下标从0开始计数。如下所示,定义一个长度为10的整型数组:
int arr[10];
定义一个长度为5的双精度浮点数数组:
double arr2[5];
二维数组的模拟
二维数组是一种特殊的数组,其可以看做是由多个一维数组组成的集合,每个一维数组又包含多个元素。通常使用行列的方式描述二维数组。二维数组的声明格式如下:
type name[row][col];
其中,type
为数组中元素的类型,name
为数组名,row
为数组行数,col
为数组列数。
二维数组的元素可以使用两个下标进行访问,第一个下标为行数,第二个下标为列数。例如,定义一个3行4列的整型数组:
int arr[3][4];
初始化二维数组可以使用嵌套的花括号,如下所示:
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
以上代码定义了一个3行4列的整型数组并初始化了其所有元素。
下面是一个计算矩阵乘积的示例,其中使用了二维数组模拟矩阵,并计算了其乘积:
#include <stdio.h>
int main()
{
int row1 = 2, col1 = 3, row2 = 3, col2 = 2;
int i, j, k;
int A[row1][col1], B[row2][col2], C[row1][col2];
// 读入矩阵A
printf("Enter elements of matrix A:\n");
for(i = 0; i < row1; i++)
for(j = 0; j < col1; j++)
scanf("%d", &A[i][j]);
// 读入矩阵B
printf("Enter elements of matrix B:\n");
for(i = 0; i < row2; i++)
for(j = 0; j < col2; j++)
scanf("%d", &B[i][j]);
// 矩阵乘积
for(i = 0; i < row1; i++)
for(j = 0; j < col2; j++)
{
C[i][j] = 0;
for(k = 0; k < col1; k++)
C[i][j] += A[i][k] * B[k][j];
}
// 输出矩阵C
printf("Result matrix C:\n");
for(i = 0; i < row1; i++)
{
for(j = 0; j < col2; j++)
printf("%d ", C[i][j]);
printf("\n");
}
return 0;
}
以上代码中,定义了三个二维数组A
、B
、C
,分别用于存储两个矩阵和它们的乘积。其中row1
、col1
、row2
、col2
分别为两个矩阵的行列数。代码中使用两个循环嵌套分别读入两个矩阵的元素,最后一个嵌套循环计算矩阵乘积,并输出结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言数组入门之数组的声明与二维数组的模拟 - Python技术站