黑眼睛 发表于 2020-10-22 16:31:16

请问大家,这里为什么有两个*号啊?实在琢磨不透

#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;
}

乐乐学编程 发表于 2020-10-22 16:31:17

本帖最后由 乐乐学编程 于 2020-10-22 19:33 编辑

一维数组指针,类型为:(*p)型

为了类型匹配,字符数组名可看成是一级指针,前面再加一个&,就是两级指针了,而(*p)型为一级指针,所以,为了类型匹配,前面再加一个*

大裤衩子 发表于 2020-10-22 20:56:08

p是一个指向指针数组的指针
看这个问题:https://fishc.com.cn/forum.php?mod=viewthread&tid=181734&page=1#pid5024551
页: [1]
查看完整版本: 请问大家,这里为什么有两个*号啊?实在琢磨不透