1.一维数组
数组是把相同数据类型的变量组合在一起而产生的数据集合。其定义方式如下:
数据类型 数组名[数组大小];
数组大小必须为整数常量,通过“数组名称[下标]”方式访问数组元素,且下标从0开始。
数组的初始化方式如下:
数据类型 数组名[数组大小] = {第一个元素初值,第二个元素初值,···,第n个元素初值};
上面对数组的第一到第n个元素进行了赋初值操作,后面未赋初值的元素将根据编译器的具体实现进行赋相关初值,一般为0。而数组一开始如果没有进行赋初值,数组中的元素可能是一个随机数。
2.二维数组
二维数组是一维数组的扩展,其定义方式如下:
数据类型 数组名[第一维大小][第二维大小];
和一维数组相似,二维数组元素的访问也是通过数组下标。
二维数组的初始化可以参考一维数组,不同的是,二维数组的每一个元素都是一维数组,所以元素的初值是一维数组的初值。
另外,如果数组大小较大,需要将其定义在主函数外,否则会导致程序异常退出。
多维数组的使用与二维数组类似。
3.字符数组
(1)初始化
字符数组的初始化和普通数组相同:
char 数组名[数组大小] = {'第一个元素初值','第二个元素初值',···,'第n个元素初值'};
此外,字符数组也可以通过直接赋值字符串来进行初始化。
(2)输入输出
字符数组就是char数组,当维度是一维时可以当作“字符串”,当维度是二维时可以当作字符串数组。
①scanf输入,printf输出
scanf对字符类型有%c和%s两种格式(printf同理),%c用来输入单个字符,%s用来输入字符串,在使用%s时,后面对应数组名称前不用加&。
②getchar输入,putchar输出
getchar和putchar分别用来输入和输出单个字符。
③gets输入,puts输出
gets和puts分别用来输入和输出一行字符串。
(3)存放方式
字符数组的每一位都是一个char型字符,在一维字符数组的末尾都有一个空字符\0,表示存放字符串的结尾,空字符\0在使用gets或scanf输入字符串时会自动添加到输入字符串后,并占用一个字符位,puts和printf通过识别\0作为字符串的结尾来进行输出。