前言
有时候数组不止一维,像一个正方体,由长宽高,而不是一条直线。
在许多数据中,也不是单一的,对于这一类数据,我们就要用到多维数组来表示。
一、高维数组
定义一个二维数组的方法就是在一维数组定义的数组后面再加上一个方括号和维数说明。
如:float shuzu[3][8];
解析:这个数组可以看作3个连续的一维数组,每个一维数组具有八个元素。存储时,先存储第一个8个,第二行再是第二个8个,最后是第三个。这里我们可以举个例子来讲。
例子:
#include <stdio.h>
main()
{
int array[3][3]={1,2,3,4,5,6,7,8,9};
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%3d",array[i][j]);
}
printf("\n");
}
}
效果演示:
可以看出,二维数组是按行存储的。
当然还有三维数组,三维也就是立方体,如:int array[2][3][4];
这个数组的意思就是三维,怎么理解呢。先把前面两个数字当成二维数组,也就是一个平面,第三个数字就是往高处长,形成立方体,所能存储元素的个数就是234=24个。
二、字符串数组
上面说的是存放数值的,接下来说一下存储字符串的。
字符串数组
字符串数组其实也就是一个二维数组,因为他的一些特性,所以要来单独说。看代码:
#include <stdio.h>
main()
{
char s[10][10];
int i;
for(i=0;i<10;i++)scanf("%s",s[i]);
}
分析:代码是没错的,字符串输入时可以不用加&。
还有一个,为啥我们只用一个一维数组来存放,不是说二维数组吗?这是因为字符串在内存里的地址可以用他的名字来表示,简而言之就是输入字符串时可以少一维。
总结
今天的多维数组基础也讲到这里,明天来讲讲字符串数组的其他问题。