【1】数组
多个数据类型相同元素的集合;
【2】访问元素
从下标0开始,到N-1结束
【3】定义数组
<存储类型> <数据类型 > <数组名>[<表达式>] ;
1--- #define N 10
int a[N];
2--- int b[5];
3--- int i = 3;
int c[i]; //一定不能初始化
4--- int d[] = {1,2,3,4}; //<===> int d[4];必须进行初始化
【4】初始化
1--- 全部初始化 //不能越界操作
2--- 部分初始化 //没有初始化的部分默认为0
3--- 不初始化 //随机值
4--- static修饰时 //默认初始化为0
【5】越界操作
int a[5] = {0,1,2,3,4};
printf("%d\n",b[5]); //没有错误警告提示
【6】数组特性
1--- 数组元素在内存中是连续存储的;
2--- 数组名代表首元素的地址(首地址);
3--- sizeof(a)/sizeof(int);
【7】冒泡排序
【8】二维数组
1--- int d[][3] = {1,2,3,4}; //<===> int d[1][3];
//只可以省略行下标
2--- 数组元素在内存中是连续存储的
3--- 数组名代表首元素的地址(首地址);
4--- int a[3][4];
a[0],a[1],a[2]:每一行的首地址
【9】char数组
1--- char a[] = {‘a’,‘b’,‘c’,‘d’,‘e’}; //size = 5
char b[] = {abcde}; //size = 6
2--- char * strcpy(char *a,char *b);
功能:将字符串b,拷贝到字符数组a中去。
返值:返回字符数组a的首地址。
说明:字符数组a必须足够大,拷贝时‘\0’一同拷贝。
3--- char * strcat(char *a,char *b);
功能:把字符数组2连到字符数组1后面
返值:返回字符数组a的首地址
说明:字符数组a必须足够大,
连接前,两串均以‘\0’结束;
连接后,串a的‘\0’取消,新串最后加‘\0’
4--- int strcmp(char *a,char *b);
功能:比较两个字符串
规则:对两串从左向右逐个字符比较(ASCII码),直到遇到不同字符或‘\0’为止
返值:a. 若字符串a < 字符串b, 返回负整数
b. 若字符串a > 字符串b, 返回正整数
c. 若字符串a == 字符串b, 返回零
说明:字符串比较不能用“==”,必须用strcmp
5--- int strlen(char *a);
功能:计算字符串长度
返值:返回字符串实际长度,不包括‘\0’在内;