结构体和共用体

结构体和共用体

ID:39355003

大小:1.01 MB

页数:83页

时间:2019-07-01

结构体和共用体_第1页
结构体和共用体_第2页
结构体和共用体_第3页
结构体和共用体_第4页
结构体和共用体_第5页
资源描述:

《结构体和共用体》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、结构体与共用体第十一章§10.1结构体及其类型定义已介绍的数据类型:简单变量、数组、指针。例:建立学生档案每一个学生的:学号(intnum)姓名(charname[20])性别(charsex)年龄(intage)存在的问题:难以处理一些较复杂的数据结构。成绩(floatscore)地址(charaddr[30])C程序可将上述数据的集合定义为一种结构体类型:structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}上述定义中:stru

2、ct–––关键词(保留字),表示定义一种结构体类型。结构体定义的一般形式:struct结构体名{成员表列};成员表列:类型标识符成员名以上仅说明了定义一种类型的方法,尚未定义变量。strudent–––结构体名如:structexp{inttimes;charflag;floatmeter;}结构体名成员表列§10.2定义结构体变量一、先定义结构体类型再定义结构体变量三种方法可用来定义结构体变量:structstudentx1,x2;则x1,x2为student结构型变量,x1,x2可存放student类型数据。例:stru

3、ctstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}类型标识符例:structstudent{intnum;charname[20];charsex;intage;charaddr[30];}x1,x2;定义形式struct结构体名{成员表列}变量名表列;二、在定义结构体类型的同时定义变量:定义形式struct{成员表列}变量名表列;不出现结构体类型名三、直接定义结构类型变量如:struct{intnumcharname[20];char

4、sex;intage;charaddr[30];}x1,x2;A)structstudent{intnum;floatage;};structstudentstd1;以下对结构体类型变量的定义中不正确的是:B)structstudent{intnum;floatage;}std1;D)struct{intnum;floatage;}std1;C)struct{intnum;floatage;}student;structstudentstd1;1.类型名与变量名是不同的概念2.允许成员名又为另一个已定义的结构型变量3.每一

5、个成员地位如同该类型的变量4.成员名与程序中的变量名可相同但意义不同几点说明:一个嵌套定义的例子:structdate{intmonth;intday;intyear;}structstudent{intnum;charname[20];charsex;intage;structdatebirthday;charaddr[30];}x1,x2;x1或x2numnamesexagebirthdaymonthdayyearaddr§10.3结构体类型变量的引用如:x1为student型变量,则x1.num:表示x1的学号x1.n

6、ame:表示x1的名字x1.birthday.day:表示x1的出生日1.只能用成员,不可用结构体变量名直接运算2.每一个分量的引用与其同类型的简单变量的引用相同。引用结构体变量实质上为引用其成员用分量运算符.优先级最高§10.4结构体变量的初始化structstudentx1={8906,"LiMing",'M’,25,8,3,1928,"YuLushan123"}与其它变量的初始化完全一样,结构体变量在定义时可初始化:关于结构体变量的几点说明:1.结构体变量不是一个简单变量,它的值是由许多个基本数据组成。2.在内存中占有

7、一段连续的存储单元3.占有的连续存储单元大小取决于成员的数据类型如:structexp{inta;floatb;charyn[8];}structexpx={1234,56.7,"text"}若x的起始地址为2000,则x在内存中占有的存储单元为:共用14个字节的连续单元123456.7testab2000200220062013yn[8]4.结构体定义和变量定义及初始化可二合为一:structexp{inta;floatb;charyn[8];}x={1234,56.7,"test"};但不能这样写:structexp

8、{inta=1234;floatb=56.7;charyn[8]="test";}x;5.要注意结构体变量的输入/输出.若有structstudenth;则:scanf("%s",&h);printf("%s",h);错误原因:结构体变量中包含有多个不同类型的数据项。正确方法:对结构体变量

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。