二维数组

1.二维数组定义时为变量(int brr[3][4]表示行为3列为4的数组)。
使用时为下标(brr[1][2]表示二维数组中1行2列的数。
注:二维数组中行优先

int main()
{
	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};//不够的格子用0补******较常用
	int err[][4] = {1,2,3,4,5,6,7,8,9,10};  //同上**一般
	int brr[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};//定义时为长度
	brr[2][2] = 100;//使用时为下标
}

2.二维数组常用的运算
(1) //输出brr的内容

  for(int i=0;i<3;i++)
 {
    	for(int j=0;j<4;j++)
    {
    	printf("%d ",brr[i][j]);
    }
    	printf("\n");
}
    	Show(brr);

(2)//将brr矩阵逆置到crr中

int crr[4][3];
	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 arr[4] 数据类型
arr int*x
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(arr等同brr[0])
brr[0]+1 int *x
brr[0][0] int x

二维数组
**4. 指针数组:存放指针的数组 , int *p[4]
数组指针:指向数组中的指针, int(*p)[4]
指针函数:返回为指针的函数, int f()
函数指针:指向函数的指针, int(f)()