课后作业求助
本帖最后由 呼噜呼噜毛 于 2021-3-8 16:09 编辑#include <stdio.h>
int main()
{
char *array = {"FishC", "Five", "Star", "Good", "WoW"};
char *(*p) = &array;
int i, j;
for (i = 0; i < 5; i++)
{
for (j = 0; (*p) != '\0'; j++)
{
printf("%c ", (*p));
}
printf("\n");
}
return 0;
}
为什么定义数组指针的时候还要多用一个*? char *(*p)
*p表示p是一个指针
(*P)表示指针p指向一个含有5个元素的数组([]优先级大于*,所以(*p)先和结合)
char *(*p) 表示p指向的数组每个元素都是char*型
而array数组就是一个含有5个元素,并且每个元素都是char*类型的数组
所以p指向array数组没毛病
如果去掉前边的*就表示指针p指向一个5个元素的数组,并且数组每个元素都是char型
所以必须要带*
页:
[1]