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