电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

c10结构体、共用体及枚举类型

42页
  • 卖家[上传人]:san****019
  • 文档编号:70548861
  • 上传时间:2019-01-17
  • 文档格式:PPT
  • 文档大小:821.51KB
  • / 42 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、C语言程序设计,第10章 结构体、共同体与枚举类型,问题:实际应用中,通常会将相关的不同类型的数据项组成一个有机的整体,这些数据项在计算机中如何表示?,学生登录信息 学生成绩表,这些数据的特点是: 1、有多项不同类型数据组成 2、各项数据占用空间大小有可能不同 C语言为了表示这种数据,定义了一种数据结构:结构体。,引子,第10章 结构体、共同体与枚举类型,本章难点,结构体类型及变量 结构体数组的使用 指针和结构体 共用体、枚举、用户自定义类型,结构体指针变量的引用 链表的建立、插入、删除、输出等操作 共用体类型的数据特点,本章要点,10.1,10.2,10.3,10.4,10.5,结构体变量的定义,结构体变量的引用和初始化,结构体数组,结构体指针变量,结构体与函数,本章主要内容,10.6,10.7,10.8,10.9,10.10,位段结构体,链表,共同体,枚举类型,用typedef定义类型,本章主要内容,结构体类型定义 结构体是一种构造数据类型 一个“结构体”类型由若干“成员”组成,每一个成员可以是一个基本数据类型或者是一个结构体类型。 结构体类型定义,struct 结构体名 类型标识

      2、符 成员名; 类型标识符 成员名; . ;,成员类型可以是 基本型或构造型,struct是关键字, 不能省略,合法标识符 可省:无名结构体,10.1 结构体变量的定义,定义义结构体类型时,应注意 成员类型可以是除本身结构体类型之外的任何已有类型,也可以是任何已有类型(包括本身类型在内)的指针类型,即构成嵌套的结构。 当一个结构体类型定义在函数之外时,它具有全局作用域;若定义在任一对花括号之内,则具有局部作用域,其作用范围是所在花括号构成的块。 结构体是一种复杂的数据类型,是数目固定、类型不同的若干成员的集合,结构体类型的定义只是列出了该结构的组成情况,编译系统并未因此而分配存储空间,当定义了结构体类型的变量或数组后,编译系统才会分配存储空间。 成员名可以与程序中的变量名相同,二者不代表同一个对象。 如果两个结构体的成员类型、名称、个数相同,但结构体名不同,也是两个不同的结构类型。,例如,可将日期定义为一个结构体: struct date int month; int day; int year; ;,结构体变量的定义 先定义结构体类型,再定义结构体变量 先定义结构体类型,再定义结构体变

      3、量 例如 在定义结构体类型的同时定义结构体变量 例如 直接定义结构体变量 例如,struct stu int num; char name20; char sex; int age; float score; struct date birthday; ; struct stu boy1,boy2;,struct stu int num; char name20; char sex; int age; float score; struct date birthday; boy1,boy2;,struct int num; char name20; char sex; int age; float score; struct date birthday; boy1,boy2;,本章主要内容,10.1,10.2,10.3,10.4,10.5,结构体变量的定义,结构体变量的引用和初始化,结构体数组,结构体指针变量,结构体与函数,结构体变量的引用 引用方式: 结构体变量名.成员名 其中点号“.”称为成员运算符,它在所有的运算符中优先级最高。 引用结构体变量时,应注意以下几点 不能将一个结构体

      4、变量作为一个整体进行输入输出 如果成员本身又是一个结构体类型,则要用若干个成员运算符逐级找到最低一级的成员才能引用 对成员变量可以像普通变量一样进行各种运算 可以引用结构体变量成员的地址,也可以引用结构体变量的地址,10.2 结构体变量的引用和初始化,例如,对前面定义的结构变量boy1和boy2,其成员的引用形式如下。 boy1.num /* 第一个人的学号 */ boy2.sex /* 第二个人的性别 */,结构体变量的初始化 本例中,对结构体变量boy1作了初始化赋值,然后把boy1的值整体赋予boy2,最后用printf函数输出boy2各成员的值。,例对结构变量初始化。 #include main() struct stu int num; char name20; char sex; int age; float score; boy2,boy1=102,“Zhang ping“,M,20,78.5; boy2=boy1; printf(“Number:%dnName:%sn“,boy2.num,boy2.name); printf(“Sex:%cnage:%dScore:%4

      5、.1fn“,boy2.sex,boy2.age,boy2.score); ,运行结果: Number:102 Name:Zhang ping Sex:M Age:20 Score:78.5,本章主要内容,10.1,10.2,10.3,10.4,10.5,结构体变量的定义,结构体变量的引用和初始化,结构体数组,结构体指针变量,结构体与函数,结构体数组的定义 结构体数组的每一个元素都具有相同的结构体类型 三种形式:,形式一: struct student int num; char name20; char sex; int age; ; struct student stu2;,形式二: struct student int num; char name20; char sex; int age; stu2;,形式三: struct int num; char name20; char sex; int age; stu2;,10.3 结构体数组,结构体数组初始化 一个结构体数组的元素相当于一个结构体变量,引用结构体数组元素的一般形式为 结构体数组名下标.成员名 例如,#include

      6、struct stu int num; char name20; char sex; float score; boy5= 101,“Li ping“,M,45, 102,“Zhang ping“,M,62.5, 103,“He fang“,F,92.5, 104,“Cheng ling“,F,87, 105,“Wang ming“,M,58 ; main() int i,c=0; float ave,s=0; for(i=0;i5;i+) s+=boyi.score; if(boyi.score60) c+=1; ave=s/5; printf(“average=%fncount=%dn“,ave,c); ,运行结果: average=69.000000 count=2,本章主要内容,10.1,10.2,10.3,10.4,10.5,结构体变量的定义,结构体变量的引用和初始化,结构体数组,结构体指针变量,结构体与函数,指向结构体变量的指针 定义形式:struct 结构体名 *结构体指针名; 例如struct stu boy,*pstu; 定义了结构体变量boy和结构体指针变量pstu

      7、,通过赋值语句可使pstu指向boy, 构体指针可以访问结构体变量的各个成员,一般形式为 结构体指针变量-成员名 运算符“-”的优先级比较高,高于算术运算符、关系运算符、逻辑运算符 例如 +pstu-num 等价于 +(pstu-num) 结构体指针访问结构体变量的形式也可以表示为 (*结构体指针变量).成员名 例如 (*pstu).num 应该注意(*pstu)两侧的括号不可少,因为成员符“.”的优先级高于“*”,10.4 结构体指针变量,存放结构体变量在内存的起始地址,以下三种形式是等价 结构体变量名.成员名 (*结构体指针变量).成员名 结构体指针变量-成员名,结构指针变量的引用 #include struct stu int num; char name20; char sex; float score; boy=102,“Zhang ping“,M,78.5,*pstu; main() pstu= ,运行结果: Number=102 Name= Zhang ping Sex=M Score=78.500000 Number=102 Name= Zhang ping Sex=M

      8、 Score=78.500000 Number=102 Name= Zhang ping Sex=M Score=78.500000,指向结构体数组的指针 普通数组可以通过指针变量来访问,同样,也可以通过结构体指针访问结构体数组。 例如 pstu=boy;或pstu= pstu就指向了该结构体数组的首地址(即第一个元素boy0的地址)。结构体指针pstu加1则指向下一个元素,用指针变量输出结构体数组。 #include struct stu int num; char name20; char sex; float score; boy5= 101,“Zhou ping“,M,45, 102,“Zhang ping“,M,62.5, 103,“Liu fang“,F,92.5, 104,“Cheng ling“,F,87, 105,“Wang ming“,M,58 ; main() struct stu *ps; printf(“NotNametttSextScoretn“); for(ps=boy;psnum,ps-name,ps-sex,ps-score); ,运行结果: No N

      9、ame Sex Score 101 Zhou ping M 45.0 102 Zhang ping M 62.5 103 Liu fang F 92.5 104 Cheng ling F 87.0 105 Wang ming M 58.0,本章主要内容,10.1,10.2,10.3,10.4,10.5,结构体变量的定义,结构体变量的引用和初始化,结构体数组,结构体指针变量,结构体与函数,结构体变量作为函数参数 结构体变量的成员可作为函数的实参,用法和普通变量作实参一样 例如,10.5 结构体与函数,显示学生的基本信息,利用结构体变量作为函数参数编程。 #include #include struct stu int num; char name20; char sex; float score; ; main() void list(struct stu student); struct stu student; student.num=101; strcpy(student.name, “Zhou ping“); student.sex=M; student.score=45; list(student); void list(struct stu student) printf(“Number=%dtName=%sn“,student.num,student.name); printf(“Sex=%cttScore=%fn“,student.sex,student.score); ,运行结

      《c10结构体、共用体及枚举类型》由会员san****019分享,可在线阅读,更多相关《c10结构体、共用体及枚举类型》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.