数组
1、一维数组
1.1、一维数组的定义和引用
一维数组定义:用以存储一维数列中数据的集合。
类型说明符 数组标识符[常量表达式];
a、类型说明符:数组中所有元素的类型
b、数组标识符:该数组型变量的名称
c、常量表达式:定义了数组中存放的数据元素的个数,即数组长度
一维数组引用:
数组标识符[下标];
1.2、一维数组的初始化
a、在定义数组时直接对数组元素赋初值
int num[6] = {1, 2, 3, 4, 5, 6};
b、只给部分元素赋值,为负值的部分元素值为0
int num[6] = {1, 2, 3};
c、对全部数组元素赋初值时,可以不指定数组长度
int num[] = {1, 2, 3}; // 数组长度为3
2、二维数组
2.1、二维数组的定义和引用
二维数组定义:用以存储二维数列中数据的集合。
类型说明符 数组标识符[常量表达式1] [常量表达式2];
a、常量表达式1:称为行下标,取值范围0~n - 1
b、常量表达式2:称为列下标,取值范围0~m – 1
c、二维数组的最大下标元素是array[n - 1][m - 1]
二维数组引用:
数组标识符[下标][下标];
2.2、二维数组的初始化
a、将所有数据写在一个大括号内,按照数组元素排列顺序对元素赋值
int num[2][2] = {1, 2, 3, 4};
b、对全部数组元素赋初值时,可以省略行下标,但不能省略列下标
int num[][3] = {1, 2, 3, 4, 5, 6};
c、分行给数组元素赋值
int num[2][3] = {{1, 2, 3}, {4, 5, 6}}; // 数组长度为3
3、字符数组
3.1、字符数组的定义和引用
a、字符数组的定义:数组中的元素类型为字符型
char 数组标识符[常量表达式];
b、字符数组的引用
数组标识符[下标];
3.2、字符数组的初始化
a、逐个字符赋给数组中的各元素
char str[5] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’};
b、定义字符数组时初始化,此时可以省略数组长度
char str[] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’}; // 长度位5
c、利用字符串给字符数组赋初值
char str[] = {“Hello”};
char str[] = “Hello”; // 长度位6
3.3、字符数组的结束标志
使用字符数组保存字符串时,系统会自动在末尾添加“\0”作为结束符
3.4、字符数组的输入和输出
a、使用“%c”进行输入和输出
b、使用“%s”进行输入和输出
使用“%s”输出时:
- 输出字符不包括结束符“\0”
- 用“%s”格式输出字符串时,printf函数输出项时字符数组名
- 如果数组长度大于字符串实际长度,只输出到“\0”为止
- 如果一个字符数组包含多个“\0”,结束符,则遇到第一个“\0”时输出就结束了
4、多维数组
多维数组定义和二维数组相同,知识下标更多
数据类型 数组名[常量表达式1] [常量表达式2] ...[常量表达式n];
5、数组的排序算法
5.1、选择法排序
https://blog.csdn.net/c15855680841/article/details/115680502?spm=1001.2014.3001.5501
5.2、冒泡法排序
https://blog.csdn.net/c15855680841/article/details/115680445?spm=1001.2014.3001.5501
5.3、交换法排序
https://blog.csdn.net/c15855680841/article/details/115680339?spm=1001.2014.3001.5501
5.4、插入法排序
https://blog.csdn.net/c15855680841/article/details/115680206?spm=1001.2014.3001.5501
5.5、折半法排序
5.6、排序算法的比较
a、选择法排序:共需进行n(n - 1)/2次比较,互换n – 1次,适用于数量较小的排序
b、冒泡法排序:最好的星环是正序,比较一次,最坏的情况逆序,比较n²次,
c、交换法排序:和冒泡类似
d、插入法排序:共需经过n – 1次插入过程
6、字符串处理函数
6.1、字符串复制
strcpy(目的字符数组名,源字符数组名)
要求目的字符数组长度足够,
6.2、字符串连接
strcat(目的字符数组名,源字符数组名)
要求目的字符数组长度足够,
6.3、字符串比较
strcmp(字符数组名1,字符数组名2)
字符串1 = 字符串2,返回值为0
字符串1 > 字符串2,返回值为正数
字符串1 < 字符串2,返回值为负数
6.4、字符串大小写转换
strupr(字符串) // 小写字母转成大写字母
strlwr(字符串) // 大写字母转成小写字母
6.5、获得字符串长度
strlen(字符数组名) // 计算字符串的实际长度,不包含“\0”