C语言----二维数组,数组的越界----

文章目录


二维数组的创建和初始化

创建

 

 

初始化

C语言----二维数组,数组的越界----_第1张图片

利用循环来访问。

 C语言----二维数组,数组的越界----_第2张图片

在这里的三和五也是可以计算的​​​​​​​C语言----二维数组,数组的越界----_第3张图片

 二维数组在内存中的存储

 二维数组在内存中也是连续存储的。(和一维数组差不多,可以将二维看成一位。)C语言----二维数组,数组的越界----_第4张图片

 

 数组的越界

数组下标是有范围限制的。

数组的下标轨道是从0开始的,如果数组有n个元素,最好一个元素的下标就是n-1。

所以数组的下标小于0,或者大于n-1,都是越界访问,超出了数组的合法空间访问。

C语言本身是不做数组下标的越界检查,编译器也不一定会报错,但是编译器不报错,并不意味着程序就是正确的。

所以写代码的时候,最好自己要作越界检查。C语言----二维数组,数组的越界----_第5张图片

 同样二维数组也会存在越界的问题。

数组作为函数的参数

数组名就是数组首元素的地址,

有两个例外,

第一:sizeof(arr);不是数组首元素地址 ,这个时候数组名表示整个数组,计算的是整个数组的大小。

第二:&数组名。这个时候数组名不是首元素的地址,数组名表示整个数组,取出来的是整个数组地址。C语言----二维数组,数组的越界----_第6张图片

 练习

写一个升序冒泡程序 C语言----二维数组,数组的越界----_第7张图片C语言----二维数组,数组的越界----_第8张图片

 优化加入一个变量flag可以减小运算量。C语言----二维数组,数组的越界----_第9张图片

 

 

 

 

你可能感兴趣的:(C语言,学习历程,python,开发语言)