6.1 一维数组
构造类型:把基本的数据类型(int,char,double,float)进行一些变换得到的数据类型。
数组,就是构造类型。
一.一维数组的定义方式
定义方式:
类型说明 数组名字[常量表达式];
int a[10];
定义了一个一维数组,名字a,这个数组有10个元素,说明:
1.数组名字其实就是变量名
数组名字其实就是变量名,比如上边这个a。
2.数组后边的方括号括起来的常量表达式
数组后边的方括号括起来的常量表达式,比如上边这个[10],不能写成 int a(10),必须是int a[10];
(1)另外,常量表达式一般都是个数字,但是写2*5也可以,但是不如10更醒目。
(2)所谓一维数组,也就是带一组[]。 二维数组 [][]
3.a[10]中的数组10,表示a数组中有10个元素
a[10]中的数组10,表示a数组中有10个元素,下标是从0开始,这10个元素是a[0],a[1],a[2]…a[9]。注意,不包括a[10]。
4.常量表达式中,可以是常量表达式;
也就是说,C语言不允许对数组的大小做动态定义;
也就是说,数组大小不能依赖于程序运行过程中的变量的值。
理解为:定义数组时,数组的大小是写死的。
5.
二.一维数组的引用
C语言中规定,只能引用数组中的元素,不能引用整个数组。
所以,数组元素的表现形式为:数组名[下标],下标一般都是整型常量。
三.一维数组的初始化
int a[10]; //不给值
int a[10] = {9,8,7,6,5,4,3,2,1,0}; //正好10个数字,用大括号括起来,每个数字之间用,分开。这样初始化
可以只给一部分元素赋值,小于10个数字:
int a[10] = {9,8,7,6}; // 后面的元素系统自动赋值为0
如果要对全部数字元素赋初值,可以不指定数组长度。
int a[] = {5,4,3,2,1}; //在定义数组时,当[]里没有数字时,系统会猜测你这个数组赋初值这个语句里面有多少个值。
//有多少个值,这个数组的长度就是多少,比如这里有个5个初值,那么系统就猜测到了你定义的是int a[5] = {5,4,3,2,1};
结论:若被定义的数组长度与提供初值的长度不相同时,则数组长度不能省略。