第11单元结构体与共用体

第11单元结构体与共用体

ID:30921302

大小:83.50 KB

页数:6页

时间:2019-01-04

第11单元结构体与共用体_第1页
第11单元结构体与共用体_第2页
第11单元结构体与共用体_第3页
第11单元结构体与共用体_第4页
第11单元结构体与共用体_第5页
资源描述:

《第11单元结构体与共用体》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第11单元结构体与共用体11.1结构体数据类型1・有时候需要将不同类型的数据组合成一个有机的整体,以便于引用,如下图所示。此时如果只有基本的数据类型,那么就不够用了。numnamesexagescoreaddr10010LiFunM1887.5Beijing2.C语言允许用户自己指定这样一种数据结构,称为结构体(structure)。3.声明一个结构体类型的一般形式为:struct结构体名称{成员列表};“结构体名称”用作结构体类型的标志;花括号内是该结构体中的各成员,由它们组成一个结构体。4•上图所示的数据结构,可以设计如下结构体:strue

2、tstudentIintnum;charname[20];charsex;intage;floatscore;charaddr[30];}11.2定义结构体类型变量的方法1.先声明结构体类型再定义变量名如上面己经定义了一个结构体类型structstudent,可以用它来定义变量。如:structstudcntstudcnt1,studcnt2;2•在声明类型的同时定义变量一般形式:struct结构体名称{成员列表}变量名列表;例如:struetstudent{intnum;charname[20];charsex;intage;floatsco

3、re;charaddr[30];}studentl,student-2;3.直接定义结构体类型变量一般形式:struct{成员列表}变量名列表;即不出现结构体名称4•儿点说明:类型和变量是不同的概念;能对一个变量赋值、存取或运算,但不能对一个类型进行赋值、存取或运算。对结构体中的成员可以单独使用;成员也可以是一个结构体变量;成员的名称可以和程序中的变量名称相同。11.3结构体变量的初始化和引用1.结构体变量的初始化和其他类型变量一样,对结构体变量可以在定义吋指定初始值,如例111。2•结构体变量的引用只能对结构体变量中的各个成员分别进行输入和输

4、出。引用结构体变量中成员的方式为:结构体变量名.成员名如I:studentl.num=10010;如果成员木身乂属于一个结构体类型,则要用若干个成员运算符;对结构体变量的成员可以像普通变量一样进行各种运算;可以引用结构体变量成员的地址,也可以引用结构体变量的地址。如:scanf&studentl.num);(输入studentl.num的值)printf(,z%o,z,&studentl);(输Illstudentl的首地址)11.4结构体数组1•结构体数组与数值型数组不同之处在于每个数组元素都是一个结构体类型的数据,它们都分别包括各个成员(分

5、量)项2•定义结构体数组。和定义结构体变量的方法相仿,只需说明其为数组即可,例如:structstudent{intnum;charnamc[20];charsex;intage;floatscore;charaddr[30];};structstudentstu[3];3•例子112。对候选人的得票进行统计,设有3个候选人,每次输入一个得票的候选人的名字,最后输出各人得票结果。Sincludc〈string.h>structperson{charname[20];intcount;}leaderE3]={,/Liz/,0,,zZhang,z,

6、0,〃FurT,0};main(){inti,j;charleader-name[20];for(i=l;i<=10;i++){scanf(〃%s〃,leader-name);for(j=0;j<3;j++)if(strcmp(leader-name,leader[j].name)==0)leader[j].count++:}printf(〃rT);for(i=0;i<3;i++)printf(〃%5s:%drT,leader[i].name,leader[i].count);程序运行结果如下图所示:LiLiFunZhangZhangFun

7、LiFunZhangLiLi:4Zhang:3Fun:311.5指向结构体类型数据的指针1・一个结构体变量的指针就是该变量所占据的内存段的起始地址。可以设一个指针变量,用来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址。指针变量也可以用来指向结构体数组中的元素。1.例子113。指向结构体变量的指针的应用。#includemain(){structstudent{longnum;charname[20];charsex;floatscore;};structstudentstuT;structstudent*p;

8、p二&stu-1;stu-l・ninn二89101;strcpy(stuT・name,〃LiLin〃);stu-1.sex」Nf;stu-1.scor

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

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

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