深理解数组
1. 存放字符串的一维数组
经过这几天的学习,大家应该知道怎样在一个数组中存放一个字符串了吧,就是下面这种方式
char str[20] ="shanxi";
那定义之后如何输出呢?试想一下,既然是数组,那么就能输出其中的任何一个元素,那么就有下面两种方式,
- 输出字符串中任何一个字符
printf("%c",str[i]); //i是元素下标,比如i==2,输出的就是a
- 输出整个字符串-------直接用数组名
printf("%s",str);
2. 存放字符串的二维数组
char str1[5][20]={"shanxi","henan","hebei","sichuan"};
那为什么能这么存储这样理解,二维数组是一维数组的数组,现在上面的str1就可以简单理解为有5个长度为20的的数组的数组
那么如何来输出"shanxi"这个字符串呢,因为可以理解为有5个长度为20的的数组的数组
那么是不是只要用这5个数组的其中一个数组名就可以了呢(理解为5个数组,第一个数组名是str1[0],第二个是str1[1],以此类推)
下面这种方式就输出了 ”shanxi“ 或者"henan"…
printf("%s",str1[i]); //这里i为0到4的整数
那我还有一个问题就是,我想输出"henan"中的a怎么输出呢
现在sr1[1]是不是henan这个元素的数组名,那么模仿上面一维数组的方式,就可以写成如下形式
printf("%s",str1[1][3]);