一、
一维数组的定义
数组中元素的数据类型,不同之处在于定义数组需要指出数组中有多少个元素
定义格式:
类型名 数组名[整型常量表达式];
例如:int a[10]
表示定义了一个一维整型数组a,数组中有10个整型数据元素
一维数组的定义说明:
①数组名的命名方式与变量名相同,满足标识符的命名规则
②定义数组时,需要指明数组的数据类型,即数组中元素的数据类型
例如:
float f[20]
char ch[100]
③定义数组时,需要指明数组中元素的个数,方括号中的常量表达式用来表示元素的个数,也称为数组长度。
④常量表达式也可以是整型常量,整型常量表达式或者符号常量。但不能是变量
例如:float s2[n] 是不允许的
一维数组元素的引用
定义数组之后,可以将每一个数组元素作为变量使用
定义格式:
数组名[下标表达式]
一维数组元素的引用说明:
①每一个数组元素实质上就是一个变量,如a[7]就是一个整型变量
②数组不可整体引用,例如不能对数组进行整体的输入,输出,以上定义的a数组,不能用数组名a代表数组中的10个元素。只能通过逐个引用数组元素来调用数组中的全部元素
③引用数组元素时,下标表达式必须是整数。特别注意,数组元素的下标是从0开始的,不存在a[10]
④程序中常用下标变量来引用数组中的元素,与循环结构配合使用。
⑤定义数组和引用数组元素的写法十分相似,但其含义完全不同,要注意区分
一维数组的初始化
语法格式:
数据类型 数组名[整型常量表达式]={初值表}
将初始值按顺序存放在一对花括号中,数据间用逗号隔开。
全部数组元素初始化,可以不指定元素个数
数组全部元素初始化为 0
二、
二维数组的定义
格定义式:
数据类型 数组名[整型常量表达式1] [整型常量表达式2]
二维数组的引用
语法格式:
数组名 [下标表达式1] [下标表达式2]
二维数组的引用说明:
①引用二维数组元素时,下标表达式必须是整型表达式。
②引用二维数组元素时,一定要把2个下标分别放在2个方括号中
③引用二维数组元素时,注意下标不能超过数组的大小
二维数组元素的初始化
①数组全部元素初始化
两种方式:
1、int a[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};
2、int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
②数组部分元素初始化
例如:
int a[3][4]={{0},{4},{8}};
int b[3][4]={{0,1},{4},{0,0,10}};
int c[3][4]={{1},{2}};
③如果对全部元素都赋值,则定义的时候第一维的长度可以不指定,但第二维的长度不能省
三、
字符串
用双引号括起来的内容是字符串常量
printf(“hello”);
在字符串常量“hello”的后面也就是字符串尾部加了一个‘\0’.
0称为空字符,作为字符串结束标志
字符数组的定义
定义格式:
char 数组名[整型常量表达式]
例如:
char s1[100];
字符数组的初始化
①使用字符常量初始化字符数组
如:char str1[10]={‘h’, ‘e’, ‘l’, ‘l’, ‘o’};
②使用字符串常量初始化字符数组
如:char str1[ ]={“hello”};
也可以省略花括号{ }
注意:不能使用赋值语句把字符串常量整体赋给数组
如:char str2[10];
str2=“happy”;
str2[10]=“happy”;
两个字符数组之间也不能整体赋值
如:char str1[10]=“hapy”,str2[10];
str2=str1;
字符数组的输入输出
1、逐个字符输入输出
用格式符“%c”输入或输出一个字符
2、利用格式符“%s”整体输入输出字符串
(1)scanf函数
用"%s"格式符输入字符串时,空格、制表符和回车都作为输入数据的分隔符,且必须按回车键结束一次输入1
(2)printf函数
利用printf函数进行输出时,输出项是数组名,不能是数组元素
(3)使用专门输入输出字符串的函数
①输入:gets(字符数组 )
②输出:puts(字符数组)
字符串数组
char s[3][8]={“nanjing”, “jiangsu”, “china”};
字符串处理函数
#include<string.h>
1、字符串拷贝函数——strcpy函数
格式:
strcpy(字符数组1,字符串2)
2、字符串连接函数——strcat函数
格式:
strcat(字符数组1,字符串2)
3、字符串比较函数——strcmp函数
格式:
strcmp(字符串1,字符串2)
4、字符串长度的函数——strlen函数
格式:strlen(字符串)
计算字符串中‘\0’前字符的个数(不包含‘\0’)