笔记整理自哈尔滨工业大学的MOOC课程:C语言程序设计精髓
第七章 数组
数组:可以用来保存大量同类型的相关数据的集合
一维数组的定义
* 并且所有元素初始化为0
一维数组的访问
一维数组元素的赋值
方法3:数组a与数组b的长度必须相等
数组的逻辑存储结构
数组的物理存储结构
已知每行列数才能正确读出数组元素
二维数组的定义和初始化
数组元素的访问
一维数组元素的越界访问
二维数组元素的越界访问
在C语言中,不带下标的数组名代表数组的首地址,即第一个元素在内存中的地址
把数组传给函数
简单变量和数组作函数参数的区别
简单变量做函数参数时,是将实参的值传给形参,
实参和形参在内存中占用不同的存储单元,
因此形参值的改变不会影响实参。
数组做函数参数时,是将实参数组的首地址传给形参,
形参数组和实参数组在内存中共享相同的存储单元,
因此对形参数组元素值的修改也就相当于是对实参数组元素值的修改。
用不带下标的数组名做函数实参,不带下标的数组名代表数组的首地址
向函数传递二维数组
元素地址:首地址+偏移量
计算最大值
返回最大值所在的下标位置
线性查找
二分查找
low<=high为假时,即找不到
二分查找的缺点
冒泡法排序
比较相邻的两个数据,若顺序不对,则将其位置交换
交换法排序
第一个数分别与后面所有的数进行比较,若后面的数较小,则交换后面这个数和第一个数的位置
第二个数分别与后面所有的数进行比较,若后面的数较小,则交换后面这个数和第二个数的位置
选择法排序
在每一遍比较中,在剩余的待比较的数中选择一个最小的数与这个剩余序列的第1个数交换位置