指针数组
指针数组:int *a[4]
顾名思义这是一个数组,数组的元素全部都为指针
如:
int *a[4]={“thank”,“you”,“very”,“much”};
数组中的每个元素都是一个指针,每个指针都存放着一个字符串的首地址;
即 a[1]==“you”
这就相当与定义char *p1 = “thank”,char *p2 = “you”,char *p3 = “very”,
char *p4 = “much”,这是四个指针,每个指针存放一个字符串首地址,
然后用arr[4]这个数组分别存放这四个指针,就形成了指针数组。
数组指针
数组指针:int (*a)[4];
数组指针是一个指向数组的指针;
相当于一个二级指针的行数组;
int b[2][5]={1,2,3,4,5,6,7,8,9,0};
int (*a)[5]=b; //数组指针的长度应与二级指针长度相同,否则编译器会报错
此时a的增量为5;
即 * ( *(a+1))==6 相当于b[1][0];
同理 * ( ( * a)+1) ==2 相当于b[0][1];