一.数组
所谓数组就是一组具有相同数据类型的数据的有序组合。
即:
❶数组是一组有序数据的集合。
❷数组中的每一个元素都属于同一个数据类型,不能把不同类型的数据放在同一个数组中。
❸用一个数组名和下标来唯一确定数组中的元素。
特点:1.具有相同的数据类型。
2.使用过程中需要保留原始数据。
#一维数组的定义
·常量表达式指明数组中元素的个数,必须大于零。
例如:int a[0];错误
·令数组名后是用方括号而不是圆括号。
例如:int d(8); 错误
例如:
➢存储学生成绩用实型数组 float score[30];
➢存储一行文字用字符数组 char str[50];
➢存储一个矩阵用实型数组 float a[3][4];
其中:score、str、a为数组名
方括号内的数值为数组长度
下标个数为数组维数
数组成员称为数组元素
数组元素的类型称为数组基类型
#一维数组初始化
3.对全部数组元素赋初值时,可以不指定数组长度。
例如: inta[5]=(1,2,3,4,5];
也可以写成inta[]=(1,2,3,4,5];
4.一维数组赋初值的个数不能超过数组总元素的个数
例如:int a[3]=(1,2,3,4];错误
#一维数组的输入输出
可以对数组中任何一个元素进行单独的输入输出,每个元素等同于一个普通变量。
数组的引用离不开循环。将数组的下标作为循环变量,通过循环,就可以对数组的所有元素逐个进行处理。
二维数组定义
定义二维数组的一般形式为
类型说明符 数组名[常量表达式1][常量表达式2];
其中:常量表达式1为行数;常量表达式2为列数
例如: float a[3][4], b[5][10]。
注意:
一对方括号内不能写两个一标。
例如:float a[3,4]错误
数组元素个数必须是常量表达式,不能使用变量。
例如:int i=2;j=4;
int a[i][i];错误
用于定义数组长度的常量表达式必须为大于零的正整数。
例如:int a[0][4];错误
二维数组的理解:
二维数组可被看作一种特殊的一维数组:它的元素又是一个一维数组。
##二维数组的初始化
(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, 2,3,4,5,6,7,8,9,10, 11, 12};
它等价于:int a[][4]={1, 2,3,4,5,6,7,8,9,10,11, 12};
在定义时也可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值。
例如:int a[][4]=((0, 0, 3, , (0, 101;
#二维数组的引用
·二维数组元素引用与一维数组元素引用一样,也要采用下标法。
·二维数组元素的引用形式: 数组名[下标1] [下标2]说明:
·下标1和下标2可以是整型常量、整型变量和整型表达式。其编号从0开始。
注意:下标不要越界
例如:若 int a[2*4][3*3],i=10;
则使用a[4][0],a[2][i-2]都是合法的。
说明:☆如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。
☆如果花括号中提供的初值个数(即字符个数)大子数组长度,则出现语法错误;
☆如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。
☆如果初值个数小数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即“/0”)。
二.字符数组的输入输出
1.单个字符输入输出(用格式符%c或字符输入函数)
#include <stdio.h>
int main()
{char c[5];
int i;
for(i=0;i<5;i++)
scanf("%c",&c[i]);
for(i=0;i<5;i++)
printf("%c",c[i]);
printf("\n");
return 0;
}
2.字符串整体或部分输入输出(用格式符%s)
char str[6];
scanf(“%s”,str);
说明:
☆输入输出项必须是以字符串的地址形式出现;
☆也可以是字符串常量:printf(“%s\n”,book");
☆只能输入不包括空格、\t和\n的字符串;
☆若要输入空格,用gets函数;
☆数组名前不加&符号。
char 字符类型
%d 打印整数
%c 打印字符
%f 打印浮点数字 打小数
%p 以地址的形式打印
%x 打印16进制数字
三. 常用的标准库头文件
·stdio.h是C89标准库的一个,标准库总共定义15个头文件;
·ctype.h定义字符处理函数,例如判断字符是否空白字符、字符大小写转换;math.h 定义数据函数,例如计算三角函数值、指数幂、对数、绝对值、平方、取整、求余等;
·stdio.h 定义各种输入输出,包括标准输入输出、文件读写、格式化输入输出等;
·stdlib.h定义一些通用函数,例如内存分配和释放、字符串和数字类型互相转换、随机函数、排序、查找函数等;
·string.h 定义字符串处理函数,例如求字符串长度、字符串复制、字符串比较、字符串查找等;
·time.h 定义时间和日期处理函数,例如获取当前时间。
while ()是循环语句的开始,后面一般不加分号,如果加上分号,则表示循环体为空循环。
字节数
char 1
short 2
int 4
long 4
long long 8
float 4
double 8
void类型
空类型,特殊类型,表示没有可用的值,用于以下三种场景:
·函数参数void,表示该函数不需要参数;
·函数返回值void,表示该函数没有返回值或返回值为空;
·指针类型void *,表示该指针转换为任意数据类型的指针。