|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
为什么代码在17行输出的时候只需要一位索引值就可以导出这5个字符串呢?
按我理解数据应该是存放在slogans[0][0]、slogans[0][1]、slogans[0][2]、slogans[0][3]、slogans[0][4]这五个位置,因为不够100个所以全部存在[0]内。
甲鱼老师在课里说二位数组是线性存放的,
如果对于char slogans[5][100]
那我可不可以理解成slogans[3][100]=slogans[300]呢
但是我自己试了一下好像不能直接使用slogans[300]这样的,不太理解老师代码的原理,麻烦大家帮忙看看。
- #include <stdio.h>
- #define NUM 5
- int main()
- {
- char slogans[NUM][100] = {
- "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[i]);
- }
- return 0;
- }
复制代码
本帖最后由 910201513 于 2019-4-18 23:10 编辑
char slogans[NUM][100]
定义了一个字符串数组
例如:"I love FishC.com!"就是slogans[0]
至于slogans[0][1]是“I”
前面用的是char,定义了一个二维字符数组
众所周知,字符串就是一维的字符数组,所以可以将二维字符数组看成一维字符串数组
所以五个字符串的检索就是slogans[0]slogans[1]slogans[2]slogans[3]slogans[4]
不可以理解slogans[3][100]为slogans[300]
这里的3和100分别类似于直角坐标系的xy轴,两个维度
|
|