- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 C51构造数据类型 【本章知识架构】 【本章教学目标和要求】 了解一维数组的定义和使用 了解字符数组的定义和使用 了解字符数组和字符串的定义和区别 熟练掌握指针的概念,熟悉指针变量的定义和引用 熟练掌握结构变量的定义和使用 了解联合和枚举的定义和使用 6.1 数组 1.一维数组 一维数组只有一个下标,例如,下面是定义一维数组的两个例子。 unsigned char x[5]; unsigned int y[3]={1,2,3}; 第一语句定义了一个无符号字符数组,数组名为x,数组中的元素个数为5。 第二语句定义了一个无符号整型数组,数组名为y,数组中元素个数为3,定义的同时给数组中的三个元素赋初值,初值分别为1、2、3。 需要注意的是,C51语言中数组的下标是从0开始的,因此上面第一句定义的5个元素分别是:x[0]、x[1]、x[2]、x[3]、x[4]。第二句定义的3个元素分别是:y[0]、y[1]、y[2]。赋值情况为:y[0]=1;y[1]=2;y[2]=3。 C51规定在引用数组时,只能逐个引用数组中的各个元素,而不能一次引用整个数组。但如果是字符数组则可以一次引用整个数组。 数组的定义: 数据类型说明符 数组名[常量表达式][={初值,初值……}] 各部分说明如下: (1)“数据类型说明符”说明了数组中各个元素存储的数据的类型。 (2)“数组名”是整个数组的标识符,它的取名方法与变量的取名方法相同。 (3)“常量表达式”,常量表达式要求取值要为整型常量,必须用方括号“[]”括起来。用于说明该数组的长度,即该数组元素的个数。 (4)“初值部分”用于给数组元素赋初值,这部分在数组定义时属于可选项。对数组元素赋值,可以在定义时赋值,也可以定义之后赋值。在定义时赋值,后面须带等号,初值须用花括号括起来,括号内的初值两两之间用逗号间隔,可以对数组的全部元素赋值,也可以只对部分元素赋值。初值为0的元素可以只用逗号占位而不写初值0。 例6-1 用数组计算并输出Fibonacci数列的前20项 Fibonacci数列在数学中很有用,Fibonacci数列中第一个数是0,第二个数是1,之后每个数都是前面两个数字之和。设计时通过数组存放Fibonacci数列,从第三项开始可通过累加的方法得到。 程序如下: 2.字符数组 用来存放字符数据的数组称为字符数组,它是C51中常用的一种数组。字符数组中的每一个元素都用来存放一个字符,也可用字符数组来存放字符串。字符数组的定义与一般数组相同,只是在定义时把数据类型定义为char型。C语言中没有字符串数据类型,定义字符串,只能通过定义字符数组来实现,在数组中最后一项加“\0”,就可以把该字符数组当成字符串使用。 就是说,字符数组有两种,最后一项有“\0”,就是字符串;没有“\0”就是普通字符数组。 例6-2 对字符数组输入输出 6.2 指针 指针是C51中的一个重要概念。指针类型数据在C51中使用十分普遍,正确地使用指针类型数据,可以有效地表示复杂的数据结构;可以动态地分配存储器,直接处理内存地址。 1.指针的概念 了解指针的基本概念,先要了解数据在内存中的存储和读取方法。 在C51中,可以通过地址方式来访问内存单元的数据,但C51作为一种高级程序设计语言,数据通常是以变量的形式进行存放和访问的。在一个程序中定义了一个变量,编译器在编译时就在内存中给这个变量分配一定的字节单元进行存储。 如对整型变量(int)分配2个字节单元,对于浮点型变量(float)分配4个字节单元,对于字符型变量分配1个字节单元等。变量在使用时要分清两个概念:变量名和变量的值。前一个是数据的标识,后一个是数据的内容。变量名相当于内存单元的地址,变量的值相当于内存单元的内容。对于内存单元的数据访问方式有两种,对于变量也有两种访问方式:直接访问方式和间接访问方式。 直接访问方式。对于变量的访问,我们大多数时候是直接给出变量名。例如:printf(“%d”,a),直接给出变量a的变量名来输出变量a的内容。在执行时,根据变量名得到内存单元的地址,然后从内存单元中取出数据按指定的格式输出。这就是直接访问方式。 间接访问方式。例如要存取变量a中的值时,可以先将变量a的地址放在另一个变量b中,访问时先找到变量b,从变量b中取出变量a的地址,然后根据这个地址从内存单元中取出变量a的值。这就是间接访问。在这里,从变量b中取出的不是所访问的数据,而是访问的数据(变量a的值)的地址,这就是指针,变量b称为指针变量。 关于指针,注意两个基本概念:变量的指针和指向变量的指针变量。变量的指针就是变量的地址。对于变量a,如果它所对应的内存单元地址为0x2000,它的指针就是0x2000。 指针变量是指一个
您可能关注的文档
- 嵌入式Linux操作系统 教学课件 华清远见嵌入式学院 孙天泽 第4章 存储管理.ppt
- 嵌入式Linux操作系统 教学课件 华清远见嵌入式学院 孙天泽 第5章 操作系统进程.ppt
- 嵌入式Linux操作系统 教学课件 华清远见嵌入式学院 孙天泽 第6章 进程间通信.ppt
- 嵌入式Linux操作系统 教学课件 华清远见嵌入式学院 孙天泽 第7章 中断与系统调用.ppt
- 嵌入式Linux操作系统 教学课件 华清远见嵌入式学院 孙天泽 第8章 文件管理.ppt
- 嵌入式Linux操作系统 教学课件 华清远见嵌入式学院 孙天泽 第9章 设备管理.ppt
- 嵌入式Linux系统开发教程 教学课件 作者 978 7 302 22520 1 第八章.ppt
- 嵌入式Linux系统开发教程 教学课件 作者 978 7 302 22520 1 第二章.ppt
- 嵌入式Linux系统开发教程 教学课件 作者 978 7 302 22520 1 第九章.ppt
- 嵌入式Linux系统开发教程 教学课件 作者 978 7 302 22520 1 第六章.ppt
- DB4405T288-2019 嘉氏羊蹄甲栽培技术规程.docx
- DB42T 1759.2-2021 生草栽培技术规程 第2部分:桃园.docx
- DB3711T149-2023 湿地植被恢复技术规程.docx
- DB61_T 582-2024 地理标志产品质量要求 横山羊肉.docx
- DB4401_T176-2022水功能区水质监测技术规范.docx
- DB43/T 2378-2022百合鳞茎腐烂病综合防控技术规程.docx
- DB45T2460-2022 克氏原螯虾稻田生态种养技术规程.docx
- DB4409T18-2021 黄皮嫁接育苗技术规程.docx
- DB3701T 485-2024 金银花生产技术规程.docx
- DB5106T08-2020 市场监管执法队伍行为规范.docx
文档评论(0)