1. 多维数组语法:
1.1. 定义和调用/引用和连续赋值语法
1.1.1. 用固定长度定义
- 左边的方括号为外层, 右边的方括号为里层
- 多维数组就是一维数组的嵌套
- 其中只有最外层的方括号(第一个方括号)可以省略
- 连续赋值的时候是从最里层往外填的 如
char b[][4][4]={"fuck","shit"}; //编译器会根据所需的空间自动取最小的最外层数组长度
该代码定义了一个三维数组, 和二维数组, 和一维数组
如
三维数组b[0][0][0]
的值为字符f
二维数组b[0][1]
为字符数组shit
, 值就等于字符s
的地址
一维数组b[0]
的值为二维数组b[0][0]
的地址
1.1.2. 用动态长度定义并初始化与释放/清理
int b=(int*)calloc(列高,sizeof(int*));
for(int i=0;i<列高;++i){
b[i]=calloc(行长,sizeof(int));
for(int j=0;j<行长;++j)
b[i][j]=0;
}
//pass
for(int i=0;i<列高;++i)
free(b[i]);
free(b);
1.2. 多维数组分段赋值语法
int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };
1.3. 作为函数参数/形参的语法
1.3.1. 实例:
void Test(int n,int A[][n]){}
int A[2][6];
Test(6,A);
1.3.2. 语法
void 函数(int 二维长度名字,二维数组类型 二维数组形参名[][二维长度名字]){}