数组

数组

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”输出时:

  1. 输出字符不包括结束符“\0”
  2. 用“%s”格式输出字符串时,printf函数输出项时字符数组名
  3. 如果数组长度大于字符串实际长度,只输出到“\0”为止
  4. 如果一个字符数组包含多个“\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”

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值