第六章 数组第一节 一维数组(C语言等级考试冲刺复习资料)
第六章 数组第一节 一维数组
知识点
高中化学知识点免费下载体育概论知识点下载名人传知识点免费下载线性代数知识点汇总下载高中化学知识点免费下载
:一维数组的定义; 一维数组的赋值;一维数组元素的引用;
重要程度:????
1、一维数组的定义
一维数组的一般形式为:类型说明符 数组名[常量表达式];
int a[6];
定义了一个int型数组,其中数组名为a,元素个数为6个。
注意:
(1) 数组名是a,它表示第一个元素的地址,是地址常量。
(2) a[6],6表示数组有6个元素,它们分别是a[0]、a[1]、a[2]、a[3]、a[4]、a[5]。
下表是从0开始的。
(3) 每个元素中只能存放整型数据。
(4) 每个元素只有一个下标,C语言中规定第一个元素的下标总为0,下标最大为数
组长度减1.
(5) C编译程序将为数组a开辟6个连续的存储单元,每个存储单元存放一个整型数
据,占四个字节的内存空间。如图1所示。
a[0] a[1] a[2] a[3] a[4] a[5]
图1 数组在内存中的存放
经典考题:(一维数组的初始化是最近几年的热点)
例1:若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是
A)#define N 10 B) #define n 5 C) int a[5+5]; D) int n=10,a[n];
int a[N]; int a[2*n];
分析:“一维数组的定义形式中数组长度必须为常量”。D选项中n是变量,不是常量表达式,错误。本题
答案
八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案
为D。
2、一维数组的初始化(考试重点)
1) 在定义数组时对数组元素赋初值。
int a[6]={0,1,2,3,4,5};
2) 在定义时给部分元素赋初值。
int a[6]={1,2,3};
后面3个元素未赋初值系统默认为0。其等价于int a[6]={1,2,3,0,0,0};
3) 如果想对一个数组中全部元素赋初值0,可以写成
int a[6]={0,0,0,0,0,0};或者int a[6]={0};
4) 对全部元素赋初值时,可以不指定数组长度,系统自动根据初值个数决定数组长度。
int a[]={0,0,0,0,0,0};
系统自动将a定义为有6个元素的数组。等价于int a[6]={0,0,0,0,0,0};
注意:
1) 赋初值的个数不能多于数组指定的长度。如int a[6]={0,1,2,3,4,5,6};是错误的。
2) 如果只定义而不初始化,不能省略数组的长度。如int a[];是错误的。
3、一维数组元素的简单引用
1) 数组元素实质上就是一个变量,代表内存中的一个存储单元。对该类型的变量的一切合法操作对于数组元素来说都是正确的,如上例中的a[0],a[1],a[2],a[3],a[4],a[5]都可以看作是整型变量来使用。
a[0]=5;
a[1]++;
a[3]=a[4]+14;
printf("%d",a[5]);
2) 在引用数组元素时,下标表达式的下限为0,上限为数组长度减1。不能有下标越界的情况。如上例中不能出现a[6]这样的引用。
例2 :以下程序运行后的输出结果是 __________
main()
{ int a[6]={1,2,3,4,5,6},i,sum;
for(i=0,sum=0;i<6;i++)
sum+=a[i];
printf("sum=%d\n",sum);
}
分析:首先定义并初始化数组a,数组包含6个元素。然后进入for循环。在第一轮循环中,i为0,sum为0,a[0]为1,执行sum+=a[i]后sum的值为1。程序进入第二轮循环,i的值为1,a[1]为2,执行sum+=a[i]后sum的值为3。同样程序进行第三,四,五,六轮循环,直到i为6跳出循环,将数组a的所有元素累加到sum。最后执行printf将sum输出,结果为sum=21。