二维数组(行主序)
1.输出brr数组的全部内容
#include <stdio.h>
//1.输出brr数组的全部内容
//void show(int *brr)//error
//void show(int brr[3][4]) //ok,不好
void Show(int (*brr)[4])
{
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
printf("%d ",brr[i][j]);
}
printf("\n");
}
}
int main()
{
int a=10;
int arr[10]={0};
int brr[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
int crr[4][3];
int drr[3][4]={1,2,3,4,5,6,7,8};//最后一行元素为0
int err[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};//3行4列不常用
int frr[][4]={1,2,3,4,5,6,7,8,9,10};//3行4列 最后两个元素为0
brr[1][2]=10;
Show(brr);
return 0;
}
运行结果:
2.将brr矩阵逆置到crr中
int main()
{
int brr[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
int crr[4][3];
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
printf("%d ",brr[i][j]);
}
printf("\n");
}
//2.将brr矩阵逆置到crr中
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
crr[j][i] = brr[i][j];
}
}
printf("---------------\n");
for(int i=0;i<4;i++)
{
for(int j=0;j<3;j++)
{
printf("%d ",crr[i][j]);
}
printf("\n");
}
return 0;
}
运行结果:
3.几个重要概念
int (*p)[4]:指向数组的指针(数组指针)
int *p[4[]:保存指针的数组(指针数组)
int *f():返回值为指针的函数(指针函数)
int(*f):指向函数的指针(函数指针)
4.二维数组与一维数组各种变量含义:
注:二维数组名不是指针