文章目录
一、一维数组的创建和初始化
数组是一组相同类型元素的集合。
1.1数组的创建方式
// ## //// ## //
没有初始化的情况,随机值
// ## //
给它初始化,顺序值
// ## //
1.2数组的初始化
数组的初始化是指,在创建数组的同时,给数组的内容一些合理初始值(初始化)。
1
arr1
arr1
arr2
arr2
// ## //
1.3一维数组的使用
对于数组的使用我们之前介绍了一个操作符:[ ],下标引用操作符。它其实就是数组访问的操作符。看代码:
- 计算数组元素个数的方法
// ## //
1.4一维数组在内存中的存储
我们要看它在内存中的存储 探究它内存中的布局 只要把每个元素的地址打印出来 就能够探究清楚它的一个布局
二、二维数组的创建和初始化
2.1二维数组的创建 & 初始化
2.2 二维数组的使用
2.3 二维数组在内存中的存储
像一堆数组一样,这里我们尝试打印二维数组的每个元素
二维数组在内存中也是连续存放的
为什么二维数组的 行 可以省略 列 不可以省略。在内存中它是连续存放的,当连续存放时可以不知道有几行,但必须要知道一行有几个元素,因为只有知道一行有几个元素时,下一行放到哪才是确定的 。 如图:
二维数组是【一维数组】的数组 (可以这么理解)
// ## //
三、数组越界
-
数组的下标是有范围限制的。
-
数组的下标规定是从零开始的,如果数组有n个元素,最后一个元素的下标就是 n-1.
所以数组的下标如果小于0,或者大于n-1,就是数组越界访问了,超出了数组合法空间的访问。 -
C语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不会报错,并不意味着程序就是正确的
-
所以程序员写代码时,最好自己做越界的检查。
二维数组的行和列也可能存在越界