这是输出要是* p不是**p

img

char *p;
int i;
for(i=0;i<5;i++)
{
  p = name[i];
  printf("%s",p);
}

用*p的话这么写:

#include "stdio.h"
#include<stdlib.h>

int main()
{
    char *name[]={"follow me", "basic","great wall","fortain","computer design"};
    int i;
    char *p=name;
    for(i=0; i<5; i++)
    {
        p=name[i];
        printf("%s\n",p);
    }

    return 0;
}

img


#include <stdio.h>
#include<stdlib.h>
 
int main()
{
    char *name[5]={"follow me", "basic","great wall","fortain","computer design"};
    int i;
    char **p;
    getchar();
    printf("1\n1\n");
    for(i=0; i<5; i++)
    {
        **p=*name[i];
        printf("%s\n",**p);
    }
 
    return 0;
}

把name 定义为二维数组,再试试。