指针自身就是一个变量,将指向相同变量的指针集合在一起,就构成了指针数组。
指针数组,本质是一个数组,只是里面存到变量是指针。
定义 int *p[n]
include<stdio.h>
int main(){
int i=0;
char p[]={“qw”,“qwert”,“asfafdsg”,“dfgadsgdgh”};
for (i=0; i<4; i++){
printf("%s",(p+i));
printf("\n");
}
return 0;
}
p是具有5个字符指针变量的数组,而地址所含的字符数量是不一样的,这样减少了内存的开销。
如果使用字符串数组,则需要选取最长的字符串作为基准,这样会浪费内存。
数组指针
定义 int (*p)[n];
首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。