YiMingC 发表于 2019-4-18 22:56:00

关于二维数组

为什么代码在17行输出的时候只需要一位索引值就可以导出这5个字符串呢?
按我理解数据应该是存放在slogans、slogans、slogans、slogans、slogans这五个位置,因为不够100个所以全部存在内。

甲鱼老师在课里说二位数组是线性存放的,
如果对于char slogans
那我可不可以理解成slogans=slogans呢
但是我自己试了一下好像不能直接使用slogans这样的,不太理解老师代码的原理,麻烦大家帮忙看看。
#include <stdio.h>

#define NUM5

int main()
{
      char slogans = {
                "I love FishC.com!",
                "Keep moving!",
                "Impossible is nothing!",
                "Just do it!",
                "I am what I am!"};
      int i;

      for (i = 0;i < NUM ; i++)
      {
                printf("%s\n",slogans);
      }


      return 0;
}         

910201513 发表于 2019-4-18 23:04:05

本帖最后由 910201513 于 2019-4-18 23:10 编辑

char slogans
定义了一个字符串数组
例如:"I love FishC.com!"就是slogans
至于slogans是“I”
前面用的是char,定义了一个二维字符数组
众所周知,字符串就是一维的字符数组,所以可以将二维字符数组看成一维字符串数组
所以五个字符串的检索就是slogansslogansslogansslogansslogans


不可以理解slogans为slogans
这里的3和100分别类似于直角坐标系的xy轴,两个维度

YiMingC 发表于 2019-4-18 23:18:26

910201513 发表于 2019-4-18 23:04
char slogans
定义了一个字符串数组
例如:"I love FishC.com!"就是slogans


按照线性理解的话,可不可以按下图这样理解呢

910201513 发表于 2019-4-19 07:58:38

YiMingC 发表于 2019-4-18 23:18
按照线性理解的话,可不可以按下图这样理解呢

嗯嗯,可以这么理解

YiMingC 发表于 2019-4-19 08:18:07

910201513 发表于 2019-4-19 07:58
嗯嗯,可以这么理解

好的,谢谢啦~

anterxp 发表于 2019-4-19 10:08:46

学习了,谢谢
页: [1]
查看完整版本: 关于二维数组