第六章 c语言数组,【笔记】第六章 数组(C语言)

本帖最后由 sphao 于 2017-7-30 18:00 编辑

第六章 数组

特点: 同一数组中的所有元素都属于 同一种数据类型, 数组元素用数组名和相应的下表来确定

方法: 一个数组元素其实就是一个变量(可以称为带下标的变量)

一 一维数组的定义和引用(只有一个下标)

1. 一维数组定义格式:

类型名 数组名[常量表达式];

定义数组有四个注意:

(1)数组名属于用户自定义标识符, 要遵守标识符命名规则

(2)定义一维数组时, 数组名后必须用一个方括号将常量表达式括起来, 常量表达式的值表示所定义数组共有多少个元素(数组长度或数组的大小)

(3)定义数组时方括号中的 表达式不能含有变量. 另外表达式的值必须为正整数

(4)C语言每个数组在内存中分配空间时是连续分配的

2. 一维数组元素的引用格式:

数组名[下标]

♠先定义 后使用

♠不能整体用数组, 只能单独引用其中的元素, 引用时下标可以是表达式

♠数组元素的下标值在0~N-1之间

3. 一维数组初始化:

格式:

类型名 数组名[常量表达式]={初值1, 初值2, ...};

注意:

(1)定义一维数组时可以将各元素的初始值依次放在一对{ }中赋给数组

(2)多则出错, 少则补零

(3)定义赋初值的个数等于数组长度, 数组长度可以省略

(4)一个也不给则是随机值

(5)只能在定义数组的同事用{ }给数组元素整体赋值

二 二维数组的定义个引用(有两个下标)

1. 二维数组的定义格式:

类型名 数组名[常量表达式1][常量表达式2];

注: (1)数组名要遵守用户自定义标识符的命名规则

(2)定义二维数组第一个方括号常量表示行数, 第二个方括号常量表示列数

(3)定义数组时方括号中的表达式不能含有变量, 且表达式的值必须是正整数

(4)在内存中二维数组元素的存放也是连续的, 先行后列原则

2. 二维数组元素的引用

数组名[行下标][列下标]

3, 二维数组的初始化

方法1: 将初值依次放在一对{ }中, 与一维数组初始化格式相同

方法2: 定义二维数组同时, 按行初始化每一行初值均用一对{ }括起, 采用嵌套{ }

注意: 定义二维数组的同时给数组初始化,可以省略行数,但列数不能省略

三 字符数组

C语言中没有字符串变量,那么如何存储

字符数组     字符型指针

1. 字符数组的初始化

与其它类型数组的初始化方式一样,只是其初始值是字符

2, 字符串

因为字符串最后都有一个字符串结束符('\0'), 所以用字符数组来存放字符串时一定要有一个元素存放结束符'\0'

字符串给字符数组初始化的方法

(1)char a[5]="abcd";

(2)char a[5]={"abcd"};

(3)char a[5]={'a','b','c','d', '\0'};

♠双引号能省略{ }

♠双引号自动加'\0', 长度加1

四 数组的使用

1. 一维数组的使用

结构: 找配对 找控制 标语句

过程: 画图

2. 二维数组的使用

双重for循环

3. 字符串使用

(1)字符串存储(赋值)四种方法

方法1: scanf(); 键盘输入

scanf("%s", a);

scanf("%s", &a);     非法, 数组名本身为地址

注: 用%s格式输入时, 遇到空格符或回车符则自动结束输入

printf(); 输出

注: 输出时则从当前地址开始, 直到遇到结束符

方法2: gets(); 键盘输入

格式: #include

gets(字符数组);

功能: 读取一个字符串赋给字符数组

注:

(1)该函数输入字符时, 只有遇到回车符系统才结束读取字符

(2)不论是用%s还是gets( )在作为输入时, 均不需要输入双引号, 若输入时用了双引号则双引号也作为字符串的有效字符

puts(); 输出

格式: #include

puts(字符数组或字符串常量);

功能: 在屏幕上输出字符数组中的字符

注: 用该函数输出与用%s格式输出一样, 只是该函数将'\0'转成'\n'输出

方法3: 字符串初始化

方法4: strcpy();

strcpy(a, "abcd");

(2)字符串函数(处理)

第一个函数: strcat()

格式: #include

strcat(字符数组1, 字符数组2)

功能: 连接

55fd2b2273b5a8b4531f72773c469d6e.gif

1.png (83.81 KB, 下载次数: 1)

2017-7-28 12:01 上传

第二个函数: strcpy()

格式: #include

strcpy(字符数组1, 字符数组2)

功能: 将字符数组2中的字符串替换到字符数组1中, 函数值为字符数组1的首地址

55fd2b2273b5a8b4531f72773c469d6e.gif

2.png (91.66 KB, 下载次数: 1)

2017-7-28 12:01 上传

第三个函数: strcmp()

格式: #include

strcmp(字符数组1, 字符数组2)

功能: 函数返回 相同位置不同字符的ASCII码差值

55fd2b2273b5a8b4531f72773c469d6e.gif

3.png (72.73 KB, 下载次数: 1)

2017-7-28 12:01 上传

注: 不能用关系运算符直接进行字符串大小或字符串数组大小的比较

第四个函数: strlen()

格式: #include

strlen(字符数组)

功能: 求出字符数组的实际长度, 不包括结束符

55fd2b2273b5a8b4531f72773c469d6e.gif

4.png (118.64 KB, 下载次数: 1)

2017-7-28 12:01 上传

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值