马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int main()
{
char *array[5] = {"FishC", "Five", "Star", "Good", "WoW"};
char *(*p)[5] = &array;
int i, j;
for (i = 0; i < 5; i++)
{
for (j = 0; *(*(*p + i) + j) != '\0'; j++)
{
printf("%c ", *(*(*p + i) + j));
}
printf("\n");
}
return 0;
}
为什么是 *(*p)[5],难道是因为array是一个类似于二级指针的东西,所以也得放到二级指针来存放吗?
你看哈,首先array是一个数组,存放指针,所以是一个指针数组,我们要用定义一个指针指向这个指针数组,那要用什么类型的指针呢?我们举个例子,比如int a=5, 那么我们要定义一个指向int型的指针,也就是int(*p),而本体array的类型是char*[5],所以能我们定义的就应该是指向char*[5]的指针,所以应该是这样定义char*(*p)[5]=&array滴
|