一、数组越界
数组越界是在数组本有的元素个数(内存)外,打印数组时,多出的数组内存,为数组越界
官方含义:数组下标变量的取值超过初识定义时的大小,导致对数组元素的访问出现在数组的范围之外,C语言常见错误之一
二、冒泡排序
分析代码:
先看主函数
- 创建数组并初始化
- 创建变量sz,用sizeof计算出数组的元素个数
- 引用冒泡排序的函数,并将数组和sz的值传到函数内
- 之后的代码为打印数组内容的代码
再看冒泡函数
- 无返回类型,arr可以用数组表示也可以用指针表示(因为是以指针形式传递的)
- 创建变量i,确定冒泡排序的趟数
- 之后for循环内是一次冒泡排序的过程
- 新的for循环内,创建变量j,为每一次数字移动的字数
- 函数原理如下图
三、数组名是什么
分析代码:
- 数组名为首元素的地址
- 打印地址,第一种直接打印数组名,第二种打印取地址&arr【0】,第三种打印&arr,结果一致
- 例外:sizeof内部单独放一个数组名,数组名表示整个数组,sizeof(数组名)计算的是整个数组的大小
- &数组名,数组名表示整个数组,取出的是整个数组的地址
给每个后面+1,会发现前两种是在整型地址后+1,即+4
但是&数组名是+20,则差一整个数组的大小
下节做两个小游戏,期待一下~
总结
以上是本人对于数组越界和冒泡排序的学习与理解
标签:打印,地址,冒泡排序,C语言,越界,数组名,数组 From: https://blog.csdn.net/weixin_63060867/article/details/137089684