C语言数组(1)

一、一维数组的创建和初始化

数组是一组相同类型元素的集合。

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语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不会报错,并不意味着程序就是正确的

  • 所以程序员写代码时,最好自己做越界的检查。

二维数组的行和列也可能存在越界

猜你喜欢

转载自blog.csdn.net/Ghr_C99/article/details/130735919