指针数组
- 指针数组,顾名思义,还是一个数组,只不过这个数组里面的所有的元素都是指针变量。
- 定义的方式
指针类型 *数组 ---> int *name[4]
- 尤其是对于多个字符串放在一个数组里面,因为字符串本身可以看做地址,因此可以通过指针数组来索引每一个字符串。
#include<stdio.h>
void main() {
int arr[4] = { 1,2,3,4 };
int* array[4] = { &arr[0],&arr[1],&arr[2],&arr[3] };
char* strings[4] = { "xixix","hhehe","llala" };
printf("%d\n", *array[1]);
printf("%s\n", strings[1]);
}
指向指针的指针
#include<stdio.h>
void main() {
char* strings[4] = { "xixix","hhehe","llala" };
char** p;
for (int i = 0; i < 3; i++)
{
p = strings + i;
printf("%s\n", *p);
}
}
- 指向指针的指针,本质上还是一个地址值。
- 因为在本例中,指针数组中存放的 3 个字符串是 3 个字符串常量,要访问他们其实就是要访问他们 3 个的地址,然后再把其中的值取出来。