1、指针数组 vs 数组指针
1.1 指针数组:元素是 指针 的数组,用于存放 内存地址
char * color[] = {"red", "blue", "yellow", "green", "purple"};
color 是一个数组,它有5个元素,元素的类型都是字符指针
。
对数组元素
的操作相当于对同类型指针变量
的操作:
printf("%10s, %10s\n", color[0], color[1]); //"red", "blue"
1.2 数组指针:指向数组的指针
时刻牢记这样的观点:数组名本身就是指针。
2、指向指针的指针(二级指针)
定义:int **pp;
char * color[] = {"red", "blue", "yellow", "green", "purple"};
char **pc = color;
printf( "%10s, %10s\n", *(pc + 1), *(pc + 2) ); //"blue", "yellow"
示例分析:
序号 | 操作 | 等价 |
---|---|---|
1 | pc | color 或者 &color[0] |
2 | *pc | color[0] |
3 | *(pc + i) | color[i] |