清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第四讲 数组的概念及应用

C语言程序设计 清华大学 郑莉安颖莲 第四讲数组的概念及应用 参考书:《C程序设计》第六章 Page 1
C语言程序设计 清华大学 郑莉 安颖莲 Page 1 第四讲 数组的概念及应用 参考书:《C程序设计》第六章

C语言程序设计 清华大学郑莉安颖莲 本讲主要内容 ·数组的概念 ·一维数组 ·二维及多维数组 字符数组 综合举例 Page 2
C语言程序设计 清华大学 郑莉 安颖莲 Page 2 本讲主要内容 • 数组的概念 • 一维数组 • 二维及多维数组 • 字符数组 • 综合举例

C语言程序设计 清华大学郑莉安颖莲 数组的概念 概念引入 用基本数据类型可以解决所有问题吗? 例如:对某班学生的成绩按由高到底的次序进行排序。 3名? 30名? Page 3
C语言程序设计 清华大学 郑莉 安颖莲 Page 3 数组的概念——概念引入 用基本数据类型可以解决所有问题吗? 例如:对某班学生的成绩按由高到底的次序进行排序。 3 名? 30 名?

C语言程序设计 清华大学郑莉安颖莲 数组的概念 数组是具有一定顺序关系的若干相同 类型变量的集合体,组成数组的变量称为 该数组的元素。 数组属于构造类型。 Page 4
C语言程序设计 清华大学 郑莉 安颖莲 Page 4 数组的概念 数组是具有一定顺序关系的若干相同 类型变量的集合体,组成数组的变量称为 该数组的元素。 数组属于构造类型

C语言程序设计 清华大学郑莉安颖莲 维数组 定义与引用 一 维数组的定义 类型说明符 数组名[常量表达式1: 数组名的构成方法与一般变量名相同。 可以是常量和符号常量,不能用变量。 例如:inta[l0] 表示a为整型数组,有10个元素:a[0].a[9] 引用 -必须先定义,后使用。 只能逐个引用数组元素,而不能一次引用整个数组。 例如:a[0]=a[5]+a[7]-a[2*3] Page 5
C语言程序设计 清华大学 郑莉 安颖莲 Page 5 一维数组 ——定义与引用 • 一维数组的定义 类型说明符 数组名[ 常量表达式 ]; 例如: int a[10] 表示 a 为整型数组,有10个元素:a[0].a[9] 可以是常量 和 符号常量,不能用变量。 • 引用 - 必须先定义,后使用。 - 只能逐个引用数组元素,而不能一次引用整个数组。 例如:a[0]=a[5]+a[7]-a[2*3] 数组名的构成方法与一般变量名相同

C语言程序设计 清华大学郑莉安颖莲 维数组 存储顺序 数组元素在内存中顺次存放,它们的 地址是连续的。 例如:具有10个元素的数组a,在内存中的存放 次序如下: a a[0] a[1] a[2]a[3]a[4] a[5] a[]al7] a8]a9] 数组名字是数组首元素的内存地址。 数组名是一个常量,不能被赋值。 Page 6
C语言程序设计 清华大学 郑莉 安颖莲 Page 6 一维数组 ——存储顺序 数组元素在内存中顺次存放,它们的 地址是连续的。 例如:具有10个元素的数组 a,在内存中的存放 次序如下: 数组名字是数组首元素的内存地址。 数组名是一个常量,不能被赋值。 a a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]

C语言程序设计 清华大学郑莉安颖莲 一维数组 初始化 可以在编译阶段使数组得到初值: -在定义数组时对数组元素赋以初值。 例如:static int a[10]={0,1,2,3,4,5,6,7,8,9}; 可以只给一部分元素赋初值。 例如:static int a[10]={0,1,2,3,4: static int b[10]={,1,3,5}; -不能给数组整体赋初值。 在对全部数组元素赋初值时,可以不指定数组长度。 例如:static int a[]={1,2,3,4,5}; 程序举例 Page 7
C语言程序设计 清华大学 郑莉 安颖莲 Page 7 一维数组 ——初始化 可以在编译阶段使数组得到初值: - 在定义数组时对数组元素赋以初值。 例如:static int a[10]={0,1,2,3,4,5,6,7,8,9}; - 可以只给一部分元素赋初值。 例如:static int a[10]={0,1,2,3,4}; static int b[10]={,1,3,5}; - 不能给数组整体赋初值。 - 在对全部数组元素赋初值时,可以不指定数组长度。 例如:static int a[]={1,2,3,4,5}; 程序举例

C语言程序设计 清华大学郑莉安颖莲 二维数组 定义及引用 。 二维数组的定义 类型说明符数组名[常量表达式][常量表达式] 例如:f1oata[3][4]; a0] aoo a01 a02 a03 可以理解为: a1] ·存储顺序 a1o a11 a12 a13 a[2] a20a21a22a23 按行存放,上例中数组a的存储顺序为: a00a01a02ao3a10a11a12a13a20a21a22a23 引用 例如:b[1][2]=a[2][3]/2; 下标不要越界 Page 9
C语言程序设计 清华大学 郑莉 安颖莲 Page 9 • 存储顺序 按行存放,上例中数组a的存储顺序为: 二维数组——定义及引用 • 二维数组的定义 类型说明符 数组名[常量表达式][常量表达式] 例如:float a[3][4]; a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23 a[0]——a00 a01 a02 a03 a[1]——a10 a11 a12 a13 a[2]——a20 a21 a22 a23 可以理解为: a • 引用 例如:b[1][2]=a[2][3]/2; 下标不要越界

C语言程序设计 清华大学郑莉安颖莲 二维数组 初始化 ·分行给二维数组赋初值 例如:staticint a34]={1,2,3,4},{5,6,7,8},{9,10,11,12} ·将所有数据写在一个{}内,按顺序赋值 例如:static int a31[4]={1,2,3,4,5,6,7,8,9,10,11,12 可以对部分元素赋初值 例如:staticint a3]I4]={1},{0,6,0,0,11}; 程序举例 Page 10
C语言程序设计 清华大学 郑莉 安颖莲 Page 10 二维数组——初始化 • 分行给二维数组赋初值 例如:static int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; • 将所有数据写在一个{}内,按顺序赋值 例如:static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; • 可以对部分元素赋初值 例如:static int a[3][4]={{1},{0,6},{0,0,11}}; 程序举例

C语言程序设计 清华大学郑莉安颖莲 字符数组 ·定义和引用 程序举例1 程序举例2 。 字符串 -字符串常量,例如:"china” 一没有字符串变量,用字符数组来存放字符串 字符串以’\0°为结束标志 字符数组的初始化 例:static char str8]={112,114,111,103,114,97,109,0}; static char str[8]={'p','r','o','g','r','a','m',"\0%); static char str[8]="program"; static char str[]="program"; Page 12
C语言程序设计 清华大学 郑莉 安颖莲 Page 12 字符数组 • 定义和引用 例:static char str[8]={112,114,111,103,114,97,109,0}; static char str[8]={'p','r','o','g','r','a','m','\0'}; static char str[8]="program"; static char str[]="program"; • 字符串 - 字符串常量,例如:"china" - 没有字符串变量,用字符数组来存放字符串 - 字符串以'\0'为结束标志 • 字符数组的初始化 程序举例1 程序举例2
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第三讲 C语言程序的基本控制结构.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第二讲 C语言基础.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第一讲 预备知识(郑莉、安颖莲).pps
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第14章 C++对C的扩充.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第13章 文件.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第12章 位运算.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第10章 指针.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第9章 预处理命令.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 函数.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第7章 数组.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第6章 循环控制.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第5章 选择结构程序设计.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第4章 最简单的c程序设计——顺序程序设计.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第3章 数据类型、运算符与表达式.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第2章 程序的灵魂——算法.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第1章 C语言概述.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第12章 文件.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第11章 位运算.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第10章 结构与链表.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第09章 指针.ppt
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第五讲 函数.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第六讲 指针.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第七讲 查找与排序算法.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第八讲 结构与联合.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第九讲 位运算 枚举 类型定义 编译预处理.pps
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第11章 结构体与共用体.ppt
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十讲 文件.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十一讲 数据结构基础(一).pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十二讲 数据结构基础(二).pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十三讲 非线性结构及数据结构应用实例.pps
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第01章 C语言概述.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第02章 数据类型.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第03章 顺序结构程序设计.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第04章 选择结构程序设计.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第05章 循环结构程序设计.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第06章 数组.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第07章 函数与变量作用域.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第08章 编译预处理.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第09章 指针(1/2).ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第09章 指针(2/2).ppt