十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
二维数组无法作为参数直接传递给函数,但是可以利用二维数组内部数据的连续性,将二维数组的地址按照一维数组的方式传递给函数,并传入对应的行列数,从而实现函数内打印二维数组的效果。
创新互联公司是一家专注于成都做网站、成都网站建设、成都外贸网站建设与策划设计,滨湖网站建设哪家好?创新互联公司做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:滨湖等地区。滨湖做网站价格咨询:13518219792
以整型为例,具体方式如下:
void print_array(int *a, int m, int n)//a为一个m行,n列的二维数组的首地址。
{
int i, j;
for(i = 0; i m; i ++)
{
for(j = 0; j n; j ++)
{
printf("%d,", a[i*n+j]);//a[i*n+j]也就是原始二维数组第i行第j列的元素。
}
printf("\n");//每行结束输出换行。
}
}
二维数组定义的一般形式是:
dataType arrayName[length1][length2];
其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。
例如:
int a[3][4];
定义了一个 3 行 4 列的二维数组,共有 3×4=12 个元素,数组名为 a,即:
a[0][0], a[0][1], a[0][2], a[0][3]
a[1][0], a[1][1], a[1][2], a[1][3]
a[2][0], a[2][1], a[2][2], a[2][3]
#includestdio.h
#define N 3
#define M 4
void main()
{
int a[N][M];
int b[M][N];
int i,j;
for (i=0;iN;i++)
{
for (j=0;jM;j++)
{
scanf("%d",a[i][j]);
}
}
for (i=0;iN;i++)
{
for (j=0;jM;j++)
{
printf("%5d",b[i][j]);
}
printf("\n");
}
for(i=0;iN;i++)
{
for(j=0;jM;j++)
{
b[j][i]=a[i][j];
}
}
for (i=0;iM;i++)
{
for (j=0;jN;j++)
{
printf("%5d",b[i][j]);
}
printf("\n");
}
}