特点:先行后列,行优先。
例:
int brr[3][4]={{1,2,3,4};{5,6,7,8};{9,10,11,12}}
int arr[3][4]={1,2,3,4,5,6,7,8}//和一维数组一样,没有的默认为0,如图:
int err[][4]={1,2,3,4,5}//行可以省略,列不可以。
一维数组与二维数组的对比:
一维
int arr[4]//长度为4的一维数组
arr int* (指向数组第一个元素的地址,整型地址)
arr+1 int*(指向第二个元素地址,整型地址)
arr[0] int*(指向首个元素地址,整型地址)
二维
int brr[3][4]
brr int(*p)[4]: 指向数组的指针(如图:红色箭头所指)
brr+1 int(*p)[4]
brr[0] int*//(与arr[0]意思大抵相同,指向第一行数组,如图:红色方框)
brr[0]+1 int*//(指向第一行数组第二个元素,如图:绿色箭头所指)
brr[0][0] int*//指向二维数组的首个元素
补充:%nd表示右对齐,%-nd表示左对齐