新手求助
#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 + i) + j) != '\0'; j++)
{
printf("%c ", *(*(*p + i) + j));
}
printf("\n");
}
return 0;
}
能有人解释一下 for (j = 0; *(*(*p + i) + j) != '\0'; j++)中三个*号分别代表什么吗,刚学指针,脑子都大了 单独的p代表整个array数组的地址,*p等价于数组名array又等价于数组array第一个元素的地址,因为array第一个元素也是一个数组,因此**p等价于数组array第一个元素(我们称为数组array-1)的数组名等价于array-1的第一个元素的地址,***p等价于array-1的第一个元素的地址所对应的值。不知我这个理解对不对 *p == array
*p + i == &(array)
*(*p + i) == array
*(*p + i) + j == &(array)
*(*(*p + i) + j) == array
页:
[1]