//二维数组
//二维数组的本质:以int arr[2][2]={{1,2},{4,5}};为例该二维数组是由2个元素构成,每个元素是由int类型长度为[2]的数组组成(还可以说成每个元素是由int类型含2个元素的数组组成)
#include <stdio.h>
int main()
{
int i=0;
int j=0;
//int arr[3][2]={{1,2},{4,5},{6,7}};//完全初始化,确定而数组元素的个数和数组中元素由什么类型的元素组成后,对每个元素和每个元素组成的元素进行全面赋值
//int arr1[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};//完全初始化
/int arr2[3][2]={1};///不完全初始化,确定而数组元素的个数和数组中元素由什么类型的元素组成后,对每个元素和每个元素组成的元素进行部分赋值,未赋值的部分默认赋值为0,可有下断点进行测试
/int arr3[3][2]={{},{4}};///不完全初始化,确定而数组元素的个数和数组中元素由什么类型的元素组成后,对每个元素和每个元素组成的元素进行部分赋值,未赋值的部分默认赋值为0,可有下断点进行测试
//int arr4[][2]={1,2,4,5};//可以不给元素个数,编译器可以根据每个元素由几个的类型元素组成的数组去分配,元素的个数。但是不能不给元素组成的个数,如果没有它,编译器将不知道如何为每个元素分配空间
//访问二位数组中的值
//printf("%d\n",arr1[1][0]);//通过下标访问的原理,找数组中第1个元素,通过下标访问从第1个元素的下标0开始向右移至下标0元素的内容。
//printf("%d\n",arr1[0][4]);//通过下标访问的原理,找数组中第0个元素,通过下标访问从第0个元素的下标0开始向右移至下标4元素的内容。
//遍历数组的内容
/*for(j=0;j<3;j++)
{
for(i=0;i<4;i++)
{
printf("%d\n",arr1[j][i]);
}
}*/
/* arr[0][0]=10;
printf("%d\n",arr[1][1]);
/
int arr1[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};//完全初始化
int( p)[4]=arr1;//二位数组首元素首地址
int(* p) =arr1;
int( p)[3][4] =&arr1;
return 0;
}