数组、指针
1. 一维数组 int a[3]={1,2,3}; 指向整型的指针 int *p=a;
二维数组 int a[3][2]={{1,2},{3,4},{5,6}}; 指向整型数组的指针 int (*p)[2]=a; (p指向a的第1行)
指向整型的指针 int *p=&a[0][0]; 或 int *p=a[0]; 或 int *p=(int*)a;
2. 一维数组 int a[3]={1,2,3}; fun1(a) 函数原型可写为: void fun1(int *a) 或 void fun(int a[])
二维数组 int a[3][2]={{1,2},{3,4},{5,6}}; fun2(a) 函数原型可写为:void fun2(int (*a)[2]) 或 void fun2(int a[][2])
3. void fun3(int **p) 这是把p声明为一个指向整型指针的指针,与指向整型数组的指针不是一回事。
4. 指针数组
int *a[10]; 下标引用的优先级高于间接访问。区别于指向整型数组的指针。
5. 数组a sizeof(a)返回整个数组占用的字节,&a返回一个指向数组的指针。
例如: int a[3]={1,2,3}; int (*p)[3]=&a;