sehnsucht 发表于 2020-7-29 23:50:02

C语言s1e23第二题

C语言s1e23第二题
#include <stdio.h>
int main()
{
        char *array = {"FishC","Five","Star","Good","Wow"};
        char *(*a)= &array;
        int i,j;
        for (i = 0;i < 5;i++)
        {
                for (j = 0;(*a)!='\0';j++)
                {
                        printf("%c ",(*a));
                }
                printf("\n");
        }
        return 0;
}
为什么这样写之恶能打印出第一行,不明白和小甲鱼给出的那种未考虑边界的代码有什么区别

chxchxkkk 发表于 2020-7-30 00:23:25

本帖最后由 chxchxkkk 于 2020-7-30 00:26 编辑

for (j = 0;(*a)!='\0';j++)
{
          printf("%c ",(*a));
}
这里的i 和 j 反了,改成 (*a) 就没问题了

乐乐学编程 发表于 2020-9-26 01:17:36

你没有结帖,我正好拿来练习

#include <stdio.h>
int main()
{
      char *array = {"FishC","Five","Star","Good","Wow"};
      char *(*a)= &array;
      int i,j;
      for (i = 0;i < 5;i++)
      {
                for (j = 0;(*a)!='\0';j++)// 此处你写成了(*a)[ i ]
                {
                        printf("%c ",(*a));// 此处你写成了(*a)[ i ]
                }
                printf("\n");
      }
      return 0;
}
页: [1]
查看完整版本: C语言s1e23第二题