一维数组
读书笔记
1、一维数组的定义:
数组是含有多个具有相同数据类型的数据的有序集合,
数组中的数据值称为数组元素,这些数据在内存中占用连续的存储空间即元素依次存放在内存中相邻的一组线性空间中,可以用一个数字序号来表示某元素在数组中的位置
定义格式为:
数据类型 数组名[数组大小];
如:
int a[4];
实际编程时通常定义常量来表示数组的大小;
如:
1 #define N 100 2 int a[N];
注意:数组大小一旦定义,在程序执行期间其位置和大小不能再发生变化,所以需要根据需求来定义合适的数组大小
2、一维数组的引用
格式:数组名[下标],对于长度为N的数组,下标范围为0~(N-1)
(1)、下标可以是常量或变量或整型表达式,但要保证在有效的数组下标范围内
1 #define N 10; 2 int a[N[,i = 0; 3 a[2 +1] = 3 ; //将a[3]赋值为3 4 a[i++] = 10; //将a[0]赋值为10后,i自增1
(2)、c语言的数组名记录了数组在内存地址中的起始地址,因此数组名为一个常量,即a == &a[0]
由于数组在内存中连续存放,且数组类型相同,每个元素占据相同字节个数,因此可以通过数组起始地址和数组元素的序号来确定每个元素在内存中的物理地址
(3)&a[i]可以等价的表示为a +i,操作系统是通过计算a+i的到的a[i]的地址来访问a[i]
3、一维数组的初始化
在定义数组时,可以对数组初始化,
常用格式时用大括号括起来的常量表达式列表来进行的初始化
如:
int a[10] = {1,2,3,4,5,6,7,8,9,10}
(1)如果初始化列表比数组短,那么数组中剩余的元素将全部会被初始化为0
则可以通过a[10]={0}将全部元素都初始化为0
(2)、如果初始化列表超出了数组的大小,将会产生错误
(3)、如果在定义数组时进行了初始化且省略了数组的长度,则编译器将自动根据初始化列表的元素个数确定数组长度