一、一维数组的创建和初始化
1.数组的创建 数组是一组相同类型元素的集合。
2.数组的初始化
数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。
数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初始化的内容来确
定。
同样,数组元素个数被确定,arr[ ] = {0}可以看为 arr[1] = 0;
注:在C语言中,数组的下标总是从数字0开始,并且从(数组总个数-1)结束。否则产生越界问题,导致无线循环。
注:
数组创建,在
C99
标准之前,
[]
中要给一个
常量
才可以,不能使用变量。在
C99
标准支持了变长数 组的概念,数组的大小可以使用变量指定,但是数组不能初始化
3.一维数组的使用
注:[ ]
,下标引用操作符。它其实就数组访问的操作符
![](https://i-blog.csdnimg.cn/blog_migrate/617ba676b112ae7baf1a10f91031103f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/eb0a91c898a90cb4cd2d29e0bf9bae1e.png)
数组大小的计算,在C语言中,通过库函数sizefo()来计算
//数组名是首元素的地址(存在2个例外)
//两个例外:
//1> sizeof(数组名),数组名表示整个数组,计算的是整个数组的大小,单位是字节的
//2> &数组名,数组名表示整个数组,取出是整个数组的地址
//除此之外,遇到的数组名都是数组首元素的地址
总结
:
1.
数组是使用下标来访问的,下标是从
0
开始。
2.
数组的大小可以通过计算得到。
二、二维数组的创建和初始化
1.二位数组的创建
![](https://i-blog.csdnimg.cn/blog_migrate/acc015e13c8f10d294b995f803d51a1d.png)
2.二位数组的初始化
![](https://i-blog.csdnimg.cn/blog_migrate/4c075674bf941dc86f332af7ef8b5150.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9c378548e87b77dff6571ee69e8cd91a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/61dffe51f866dbfba4907aed4a872d84.png)
3.
二维数组在内存中的存储
![](https://i-blog.csdnimg.cn/blog_migrate/3964cb9c74518eb6b3988769ce894af1.png)
三、
数组越界
数组的下标是有范围限制的。
数组的下规定是从
0
开始的,如果数组有
n
个元素,最后一个元素的下标就是
n-1
。
所以数组的下标如果小于
0
,或者大于
n-1
,就是数组越界访问了,超出了数组合法空间的访问。
C
语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不报错,并不意味着程序就 是正确的,
![](https://i-blog.csdnimg.cn/blog_migrate/bcfe78ca06eeef17efa53cdce9e36c71.png)
![](https://i-blog.csdnimg.cn/blog_migrate/102dda30a4de0da525b3a69829dca584.png)