C语言数组和字符串
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下标变量也称为数组元素。
第5页/共76页
2021/3/24
6
引言
数组的特点: 1、 数组是有序数据的集合; 2、数组中的每一个元素都属于同一个数据类型; 3、用一个统一的数组名和下标来唯一的确定数组中
的元素。
第6页/共76页
2021/3/24
8.1 一维数组
7
8.1.1 一维数组的定义
数据类型 数组名[常量表达式];
C语言中同样也可以用下标变量,只是把下标用方括 号括起来。即s[1],s[2],…s[10],这就是数组类型变量。
第2页/共76页
2021/3/24
3
什么构造类型?
所谓构造类型是指由基本类型数据按一定的规则组成 的,是用户自己按规则定义的。数组是构造类型之一 。
在数学中我们学过数列、矩阵的概念, 数列通常表示为:a1 、a2 、a3、….、an
例如: int a[10]; float score[5];
“数据类型”: 是数组元素的数据类型。
“数组名”:
遵循C语言标识符规则。
“常量表达式”:表示数组中有多少个元素,即数
组的长度。它可以是整型常量、整型常量表达式
或符号常量。
第7页/共76页
2021/3/24
8.1.1 一维数组的定义(续)
以下数组定义是正确的: #define N 10 …… float score1[N], score2[N]; int num[10+N]; char c[26]; 以下数组定义是不正确的: int array(10); int n; float score[n]; double b['a'.. 'd']; char str[ ];
1
C语言的 数据类型
整型 基本类型: 实型
字符型 、 枚举类型
数组类型
构造类型: 结构体类型 公用体类型
指针类型
空类型
第1页/共76页
2021/3/24
2
引言
简单变量:如a, b2, x3, day ,sum,如同一个姓名代表 一个人一样,变量间没有任何联系。
有一些变量可以归结为同一类型,如 s1,s2,s3,s4,s5,…s10代表同一个班中10个学生每个学生的成 绩。这些变量都用相同的名字,只是下角标有所区别,即 用相同的名字不同的下标代表同一类型的一组数据,这种 变量称为下标变量。
第10页/共76页
2021/3/24
8.1.2 数组元素的引用(续)
11
说明:
① 下标从0开始(下界为0),数组的最大下标 (上界)是数组长度减1。
例如:
int a[10]; scanf ("%d",&a[10]);
/* 下标越界 */
C编译系统不做越界检查,如果引用的数组元素 超出数组范围会破坏其他变量的值。
第8页/共76页
8
2021/3/24
数组在内存的存放
9
Fra Baidu bibliotek
数组下标从0开始。
一维数组的数组元素 低地址 在内存里按顺序存放。
数组名代表数组的首
地址,即score的值
与score[0] 的地址
值相同。
高地址
score数组
91.5 score[0] 34.5 score[1] 67.5 score[2] 72.0 score[3]
84.0 score[4]
第9页/共76页
2021/3/24
8.1.2 数组元素的引用
10
格式:
数组名[下标表达式]
例如:输入学生成绩 for(i=0;i<5;i++) scanf("%f",&score[i]);
例如:fib[n]=fib[n-1]+fib[n-2];
下标表达式的值必须是整型表达式。
矩阵通常表示为: a11 a12 a13 a14
a21 a22 a23 a24
第3页/共76页
2×4
2021/3/24
4
在C语言中表示数组和矩阵的方法是:
数组:a[0]、a[1]、a[2]、a[3]、a[4]、a[5]
其中 a :称为数组名。 方括号中的数:称为下标
下标是一个数时,也就是数列,称为一维数组。 下标是两个数时,也就是矩阵,称为二维数组。还 有三维数组、四维数组等。
2
3
数组名表示内存首地址, 是地址常量
4
5
合法标识符 a[0]
表示元素个数 引用时下标从0开始
a[1]
a[2]
编译时分配连续内存
a[3]
内存字节数=数组大小*
a[4]
sizeof(元素数据类型)
a[5]
返回
第13页/共76页
2021/3/24
14
– 一维数组的引用
数组必须先定义,后使用
只能逐个引用数组元素,不能一次引用整个 数组
第11页/共76页
2021/3/24
8.1.2 数组元素的引用(续)
12
② [ ]是下标运算符, 引用数组元素时, 根据数组的首地址 和下标数,计算出 该元素的实际地址, 取出该地址的内容 进行操作。
如引用 score[2]: (1)计算 2000+2*4=2008 (2)取出2008的内容
2000H 2004H 2008H 200CH 218CH
2021/3/24
8.1.3 一维数组的初始化
15
初始化:在定义数组时给数组元素赋初值。
1.在定义数组时,对全部数组元素赋初值 例如:int a[5]={0,1,2,3,4};
91.5 score[0] 34.5 score[1] 67.5 score[2] 72.0 score[3]
84.0 score[4]
第12页/共76页
2021/3/24
13
– 一维数组的定义
[ ] :数组运算符
定义方式: 类型说明符 数组名单[常目运量算表符
达式];
例 int a[6];
a
0
1
数组元素表示形式: 数组名[下标]
– 其中:下标可以是常量或整型表达式
– 例8.1 数组元素的引用
main()
{ int i,a[10];
运行结果:
for(i=0;i<=9;i++) a[i]=i;
9876543210
for(i=9;i>=0;i--)
printf(“%d”,a[i]);
}
第14页/共76页
第4页/共76页
2021/3/24
第8章 数组与字符串
5
一个人N门课的成绩怎样存储和处理? 一个班N门课的成绩怎样存储和处理?...... 这些数据的特点:具有相同的数据类型。
为了方便地使用这些数据,C语言提供了一 种构造数据类型:数组。
例如:存储学生成绩用实型数组 score[5]
其中:score是数组名。该数组可以存放5个成绩, 分别用下标变量表示: score[0],score[1],…score[4]。
第5页/共76页
2021/3/24
6
引言
数组的特点: 1、 数组是有序数据的集合; 2、数组中的每一个元素都属于同一个数据类型; 3、用一个统一的数组名和下标来唯一的确定数组中
的元素。
第6页/共76页
2021/3/24
8.1 一维数组
7
8.1.1 一维数组的定义
数据类型 数组名[常量表达式];
C语言中同样也可以用下标变量,只是把下标用方括 号括起来。即s[1],s[2],…s[10],这就是数组类型变量。
第2页/共76页
2021/3/24
3
什么构造类型?
所谓构造类型是指由基本类型数据按一定的规则组成 的,是用户自己按规则定义的。数组是构造类型之一 。
在数学中我们学过数列、矩阵的概念, 数列通常表示为:a1 、a2 、a3、….、an
例如: int a[10]; float score[5];
“数据类型”: 是数组元素的数据类型。
“数组名”:
遵循C语言标识符规则。
“常量表达式”:表示数组中有多少个元素,即数
组的长度。它可以是整型常量、整型常量表达式
或符号常量。
第7页/共76页
2021/3/24
8.1.1 一维数组的定义(续)
以下数组定义是正确的: #define N 10 …… float score1[N], score2[N]; int num[10+N]; char c[26]; 以下数组定义是不正确的: int array(10); int n; float score[n]; double b['a'.. 'd']; char str[ ];
1
C语言的 数据类型
整型 基本类型: 实型
字符型 、 枚举类型
数组类型
构造类型: 结构体类型 公用体类型
指针类型
空类型
第1页/共76页
2021/3/24
2
引言
简单变量:如a, b2, x3, day ,sum,如同一个姓名代表 一个人一样,变量间没有任何联系。
有一些变量可以归结为同一类型,如 s1,s2,s3,s4,s5,…s10代表同一个班中10个学生每个学生的成 绩。这些变量都用相同的名字,只是下角标有所区别,即 用相同的名字不同的下标代表同一类型的一组数据,这种 变量称为下标变量。
第10页/共76页
2021/3/24
8.1.2 数组元素的引用(续)
11
说明:
① 下标从0开始(下界为0),数组的最大下标 (上界)是数组长度减1。
例如:
int a[10]; scanf ("%d",&a[10]);
/* 下标越界 */
C编译系统不做越界检查,如果引用的数组元素 超出数组范围会破坏其他变量的值。
第8页/共76页
8
2021/3/24
数组在内存的存放
9
Fra Baidu bibliotek
数组下标从0开始。
一维数组的数组元素 低地址 在内存里按顺序存放。
数组名代表数组的首
地址,即score的值
与score[0] 的地址
值相同。
高地址
score数组
91.5 score[0] 34.5 score[1] 67.5 score[2] 72.0 score[3]
84.0 score[4]
第9页/共76页
2021/3/24
8.1.2 数组元素的引用
10
格式:
数组名[下标表达式]
例如:输入学生成绩 for(i=0;i<5;i++) scanf("%f",&score[i]);
例如:fib[n]=fib[n-1]+fib[n-2];
下标表达式的值必须是整型表达式。
矩阵通常表示为: a11 a12 a13 a14
a21 a22 a23 a24
第3页/共76页
2×4
2021/3/24
4
在C语言中表示数组和矩阵的方法是:
数组:a[0]、a[1]、a[2]、a[3]、a[4]、a[5]
其中 a :称为数组名。 方括号中的数:称为下标
下标是一个数时,也就是数列,称为一维数组。 下标是两个数时,也就是矩阵,称为二维数组。还 有三维数组、四维数组等。
2
3
数组名表示内存首地址, 是地址常量
4
5
合法标识符 a[0]
表示元素个数 引用时下标从0开始
a[1]
a[2]
编译时分配连续内存
a[3]
内存字节数=数组大小*
a[4]
sizeof(元素数据类型)
a[5]
返回
第13页/共76页
2021/3/24
14
– 一维数组的引用
数组必须先定义,后使用
只能逐个引用数组元素,不能一次引用整个 数组
第11页/共76页
2021/3/24
8.1.2 数组元素的引用(续)
12
② [ ]是下标运算符, 引用数组元素时, 根据数组的首地址 和下标数,计算出 该元素的实际地址, 取出该地址的内容 进行操作。
如引用 score[2]: (1)计算 2000+2*4=2008 (2)取出2008的内容
2000H 2004H 2008H 200CH 218CH
2021/3/24
8.1.3 一维数组的初始化
15
初始化:在定义数组时给数组元素赋初值。
1.在定义数组时,对全部数组元素赋初值 例如:int a[5]={0,1,2,3,4};
91.5 score[0] 34.5 score[1] 67.5 score[2] 72.0 score[3]
84.0 score[4]
第12页/共76页
2021/3/24
13
– 一维数组的定义
[ ] :数组运算符
定义方式: 类型说明符 数组名单[常目运量算表符
达式];
例 int a[6];
a
0
1
数组元素表示形式: 数组名[下标]
– 其中:下标可以是常量或整型表达式
– 例8.1 数组元素的引用
main()
{ int i,a[10];
运行结果:
for(i=0;i<=9;i++) a[i]=i;
9876543210
for(i=9;i>=0;i--)
printf(“%d”,a[i]);
}
第14页/共76页
第4页/共76页
2021/3/24
第8章 数组与字符串
5
一个人N门课的成绩怎样存储和处理? 一个班N门课的成绩怎样存储和处理?...... 这些数据的特点:具有相同的数据类型。
为了方便地使用这些数据,C语言提供了一 种构造数据类型:数组。
例如:存储学生成绩用实型数组 score[5]
其中:score是数组名。该数组可以存放5个成绩, 分别用下标变量表示: score[0],score[1],…score[4]。