一、为什么需要数组

1.为了解决大量同类型的数据存储和使用

2.为了模拟现实世界

二、数组的分类

1.一维数组

为n个变量连续分配存储空间

所有的变量数据类型必须相同

所有变量所占的字节大小必须相等

初始化:

完全初始化

int a[5] = {1, 2, 3, 4, 5};

不完全初始化,未被初始化的元素自动为零。

int a[5] = {1, 2, 3};

不初始化,所有元素是垃圾值。

int a[5];

清零

int a[5] = {0};

错误写法1

int a[5];

a[5] = {1, 2, 3, 4, 5};

下面的a[5]是数组元素

错误写法2

int a[5] = {1, 2, 3, 4, 5};

a[5] = 100;

数组下标越界

错误写法3

int a[5] = {1, 2, 3, 4, 5};

int b[5];

b = a;

a和b分别表示两个数组第一个元素的地址

2.二维数组

 int a[3][4]

 总共有12个元素,可以当做3行4列看待。

 初始化

int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

int a[3][4] = {

{1, 2, 3, 4}

{5, 6, 7, 8}

{9, 10 ,11, 12}

};

输出二维数组内容

for (i=0;i<3;++i){

for (j=0;j<4;++j){

printf("%d\t", a[i][j]);

}

printf("\n");

}

3.多维数组

是否存在多维数组?

不存在

因为内存是线性一维的

n维数组可以当做每个元素是n-1维数组的一维数组

比如:

int a[3][4];

该数组是含有3个元素的一维数组

只不过每个元素都可以再分成4个小元素