二维数组

相比一维数组,二维数组是这样定义的
int arr[4];//一维数组,四个元素
int brr[3][4];//二维数组,三行四列
int crr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};//定义二维数组,行优先
每个大元素都可以看成一个元素
int drr[3][4]={1,2,3,4,5,6,7,8,9,10};//也可写成这种形式,1234为一行,4567为一行,从上往下
也可以这么写,int err[][4]={1,2,3,4,5,6,7,8,9,10}
输出数组:
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
printf("%d\n".brr[i][j]);
}
}
矩阵逆置:
int crr[4][3];
// 将brr矩阵逆置到crr中
三行四列变四行三列
for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
{
crr[j][i]=brr[i][j];
}//矩阵逆置
for(int i=0;i<4;i++)
{
for(int j=0;j<3;j++)
{
printf("%d\n",crr[i][j];
}
}//输出矩阵
arr:首元素地址; intx;
arr+1: int
x;
arr[0]: int x;
arr[0]+1: int x;
类比二维数组
int brr[3][4];
brr: int(x)[4]// 数组指针
brr+1:int(x)[4]
brr[0]:int
x
brr[0]+1:int
x
brr[0][0]:int x;
brr[0][0]+1:int x;
此时arr地位等同于brr[0]
arr[0]*(arr+0)arr;
int(x)[4]:保存数组的指针数组指针
int
x[4]:保存指针的数组,简称指针数组
int
f():返回值为指针的函数,简称指针函数
int(*f)():指向函数的指针,简称函数指针
二维数组