第八章 数组
一、一维数组的定义和初始化
●数组是一组,具有相同类型的变量的集合。
构成数组的每个数据项称为数组元素,是变量。
★C语言中数组的下标都是从零开始的。
●short int 表示16位整数
a[5]直接对 a 访问就是访问此数组的所地址.
由于变译程序不检查,数组下标值是否越界一旦下标,越界将访问数族以外的空间,那里的数据是未知的修改,可能会带来严重的后果.
二、二维数组的定义和初始化
●类型 数组名[元素个数]
类型 数组名[第一维长度][第二维长度]
●因为数组在内存中占用的字节数为:数组长度×sizeof(基类型),二维数组所占的字节数为:第一维长度×第二维长度×sizeof(基类型)。
★数组名就是首地址
注:在不同编译系统中,int 型所占的字节数是不同的。
●数组定义后的数值仍然是随机数,一般需要我们来初始化。
下标既可是常量也可是整型表达式。
●数组第二维的长度声明永远都不能省略。
memset(a,0,sizeof(a)) memset用于初始化的一个函数,其作用是把数组a清零
数组一定要定义为全局数组,不要在某个程序内定义
三、向函数传递一维数组
●若要把一个数组传递给一个函数,那么只要使用不带方括号的数组名作为函数实参调用函数即可
●数组名代表数组第一个元素的地址,用数组名作函数,实参实际上是将数组的首地址传给被调函数
●数组作函数形参时,数组的长度可以不出现在数组名后面的方括号内通常用另一个整型形参指定数组的 长度。
四、排序和查找
●查找分为线性查找(顺序查找)和折半查找。
●当代查找信息有序排列时折半查找法比顺序查找法的平均查找速度要快的多折半,查找也称为对分搜索