欢迎来到天天文库
浏览记录
ID:38293740
大小:1.20 MB
页数:38页
时间:2019-06-07
《自定义数据类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第10章自定义数据类型回顾编译预处理不带参数的宏定义带参数的宏定义2教学目标理解为什么使用结构体定义结构体声明结构体变量访问结构体成员掌握结构体作为函数参数的用法了解共用体了解自定义数据类型3思考在程序里表示一个人(姓名、年龄、性别、成绩),怎么表示?想表示多个人呢?如何用计算机程序实现下述表格的管理?4结构体简介I.使用数组MaryJohnPeterRoseKateFMFMF01020304058978.56797.564解决方案:scorenumsexname不能建立数组间的关系II.使用多维数组MaryJohnPeterRoseKateFMFMF0102030405
2、8978.56797.564C语言不允许一个数组包含多种数据类型III.使用结构体numnamesexscoreC语言引入了称为结构体的数据存储方式“结构体”是一种构造数据类型,它是由若干数据项组合而成的复杂数据对象,这些数据项称为结构体的成员。5定义结构体2-1structstructurename{datatypevariable1;datatypevariable2;...};结构体成员{};结构体名structstudentintnum;charname[20];charsex;定义结构体floatscore;C语言中的有效数据类型6定义结构体2-2structs
3、tudent{intnum;charname[20];charsex;floatscore;};numnamesexstudent结构体定义并不预留内存结构体定义放置在程序的开始部分,位于头文件声明之后score结构体定义仅描述了一个结构体的形式。如果要在程序里使用结构体,需要声明结构体变量。7声明结构体变量声明结构体变量structstudent{intnum;charname[20];charsex;floatscore;};structstudentstudent1,student2;I.先定义结构体,再声明结构体变量structstudent{intnum;cha
4、rname[20];charsex;floatscore;}student1,student2;II.在定义结构体类型的同时声明结构体变量struct{intnum;charname[20];charsex;floatscore;}student1,student2;III.直接声明结构体变量声明一个类型为student结构体的变量,将会为该变量分配内存,大小是大于或等于其所有成员变量的大小之和。8structdate{intmonth;intday;intyear;};嵌套结构体struct{intnum;charname[20];charsex;structdateb
5、irthday;floatscore;}student1,student2;访问成员是通过成员的名字,称为“按名引用”。在程序中使用结构中成员的方法为:结构体变量名.成员名例如:student1.num、student2.sex、student1.birthday.month9内存student3structstudentstudent3={3,"YaoMing",'M',90.5};结构体变量初始化3YaoMingM赋值的顺序应与成员声明时的顺序一样;允许初始化语句中的值的数目比结构体成员数目少。student3.numstudent3.namestudent3.sex
6、90.5student3.score10student1student1.num=1;scanf("%s",&student1.name);student1.sex='M';printf("请输入成绩:");scanf("%f",&student1.score);结构体变量赋值1ZhangZiLiangM用输入语句或赋值语句来给结构体变量的各个成员赋值7878student2=student1;student21ZhangZiLiangM78strcpy(student1.name,"ZhangSan");11结构体变量如果要将“zhang”改为“zhong”,只要将
7、结构变量student1中的数组成员name下标为2的元素‘a’改为‘o’即可。可以使用下列语句:student1.name[2]='o';/为结构变量中的数组成员的一个元素赋值/12结构体变量对结构变量的整体操作要对结构进行整体操作有很多限制,C语言中能够对结构进行整体操作的运算不多,只有赋值“=”和取地址“&”操作。例如:structdatesunday,today;sunday=today;/结构变量整体赋值/13结构体类型的引用不能将一个结构变量作为一个整体直接访问。例如,已定义student1为结构变量并且已有值。不
此文档下载收益归作者所有