目录
数组
定义:是一组具有相同类型的数据的有序集合。
注:
- 数组中的各数据的排列是有一定规律的,下标代表数据在数组中的序号。
- 不能把不同类型的数据放在同一个数组中。
- 用一个数组名和下标来唯一确定数组中的元素。
一维数组
定义格式:类型说明符 数组名[常量表达式]
说明:
- 类型说明符:数组的类型。
- 数组名命名规则和变量名相同,遵循标识符命名规则。
- 常量表达式可以包括常量和符号常量,但不能包含变量。
- 常量表达式指明数组中元素的个数,必须大于0.
- 数组名后是用方括号而不是圆括号。
注:
- 下标个数为数组维数
- 方括号内的数值为数组长度
- 数组成员称为数组元素
- 数组元素的类型称为数组基类型
一维数组初始化
定义:在数组定义时为数组元素赋初值。
初始化方法:
1.在定义数组时对数组元素赋以初值。
方法:将数组元素的初值依次放在一对花括弧内。
eg.int a [10]={2、3、4、5、6、7、18、20、45、43、90}
2.可以只给一部分元素赋值,其他按0处理。
eg.int a [10]={0、1、2、3、4}后5个元素为0
3.对全部数组元素赋初值时,可以不指定数组长度。
4.一维数组赋初值的个数不能超过数组总元素的个数。
C语言规定,只能引用单个数组元素,不能一次引用整个数组
引用形式:数组名[下标]
说明:下标指在数组中第几个元素
下标可以是整型常量、整型变量和整型表达式
下标的值是数组元素序号,从0开始,到n-1结束
一维数组的输入输出
可以对数组中任何一个元素进行单独的输入输出,每个元素等同于一个普通变量。
数组的引用离不开循环。将数组的下标作为循环变量,通过循环,就可以对数组的所有元素逐个进行处理。
二维数组
一般形式:类型说明符 数组名[常量表达式1] [常量表达式2];
其中:常量表达式1为行数;常量表达式2为列数
注意:
一对方括号内不能写两个下标;例如:float a[3,4]
数组元素个数必须是常量表达式,不能使用变量。例如:int i=2;j=4; int a[i][j];
用于定义数组长度的常量表达式必须为大于0的正整数。例如:int a[0][4];
C语言中,二维数组元素在内存中排列顺序是按行存放的。
二维数组初始化
1.分行给二维数组赋初值。(最清楚直观)
例如:
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
2.可以将所有数组写在一个花括号内,按数组元素在内存中排列顺序对各元素赋初值。
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}
3.可以对部分元素赋初值。
例如:int a[3][4]={{1},{5},{9}};
可以对各行中的某一元素赋初值。
int a[3][4]={{1},{0,6},{0,0,0,11}};
也可以只对某几行元素赋初值。
int a[3][4]={{1},{5,6}};
4.如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。
二维数组的引用
说明:数组名a代表的是数组a在内存中的首地址,可以用数组名a代表数组元素a[0][0]的地址。数组名是常量,不可赋值。
二维数组元素引用与一维数组元素引用一样,也要采用下标法。
二维数组元素的引用形式:数组名[下标1][下标2]
注意:下标不要越界
二维数组的输入输出
采用双重循环方式进行。
字符数组
定义:用来存放字符数据的数组
C语言用字符数组存放字符串,字符数组中的各元素依次存放字符串的各字符。
定义格式:char 数组名[常量表达式]
强调:
字符串实际占有单元的数量等于字符串长度+1。
定义时注意考虑元素总个数应比实际长度多1。
字符数组初始化
1.用单个字符对字符数组初始化
说明:
- 如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。
- 如果花括号中提供的初值个数(即字符个数)大于数组长度,则出现语法错误;
- 如果提供的初值个数与预定的数组长度相同,定义时可省略数组长度,系统会自动根据初值个数确定数组长度。
- 如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即‘\0')。
2.用字符串常量对字符数组初始化
说明:
- 将字符串储存到字符数组中,字符串和第一个‘\0’构成有效字符串。对字符串的操作,就是对字符数组的操作。
- 普通数组中的元素是确定的,一般用下标控制循环;而字符串使用结束符‘\0’来控制循环。
字符数组的输入输出
1.单个字符的输入输出(用格式符%c或字符输入函数)
2.字符串整体或部分输入输出(用格式符%s)
说明:
- 输入输出项必须是以字符串的地址形式出现;
- 也可以是字符串常量:printf("%s\n","book")
- 只能输入不包括空格、\t和\n的字符串;
- 若要输入空格,用gets函数;
- 数组名前不加&符号。