碎碎念(4)
目录
1.typedef定义数组类型
有typedef是类型,没有是变量
typdef int A[8]; ===== typdef int (A)[8];
A b;
2.指针数组
int *a[10];
3.数组指针
方法1:
先定义数组类型,再定义数组指针变量
typedef int A[10];
A *a;
方法2:
先定义数组指针类型,再定义数组指针bianl
typdef int (*A)[10];
A a;
方法3:
直接定义数组指针变量
int (*A)[10];
4.二维数组
int a[][4] = {1,2,3,4,5,6,7,8};
a: 数组第0行首地址
a+i: 数组第i行首地址
*(a+i): 数组第i行首元素地址
*(a+i)+j: 数组第i行第j列元素地址 《===》 &a[i][j]
*(*(a+i)+j): 数组第i行第j列元素 《===》 a[i][j]
5.二维数组是线性存储的(用一维数组方式打印)
6.一维(二维)数组与数组指针
int a[10];
int aa[3][10];
int (*A)[10];
A = &a; //a:数组首元素地址
A = aa; //aa: 数组首地址
7.二维数组做函数参数
int a[3][4]; //a: 指向整形数组的指针
//wrong
void printArray(int **a) //指向整形指针的指针
//ok
void printArray(int a[3][4])
void printArray(int a[][4])
void printArray(int (*a)[4])