高级语言程序设计c12结构体和共用体

上传人:无*** 文档编号:187672648 上传时间:2023-02-16 格式:PPT 页数:25 大小:331.50KB
收藏 版权申诉 举报 下载
高级语言程序设计c12结构体和共用体_第1页
第1页 / 共25页
高级语言程序设计c12结构体和共用体_第2页
第2页 / 共25页
高级语言程序设计c12结构体和共用体_第3页
第3页 / 共25页
资源描述:

《高级语言程序设计c12结构体和共用体》由会员分享,可在线阅读,更多相关《高级语言程序设计c12结构体和共用体(25页珍藏版)》请在装配图网上搜索。

1、 结构体变量的定义 结构体变量的引用 结构体变量的初始化 结构体数组 结构体和指针 小结 上机作业 11&结构体是一种构造数据类型&用途:把不同类型的数据组合成一个整体-自定义数据类型 结构体类型定义struct 结构体名 类型标识符 成员名;类型标识符 成员名;.;成员类型可以是基本型或构造型struct是关键字,不能省略合法标识符可省:无名结构体分号不能省例 struct student int num;char name20;char sex;int age;float score;char addr30;namenumsexagescoreaddr2字节2字节20字节1字节4字节30字

2、节.结构体类型定义描述结构的组织形式,不分配内存结构体类型定义的作用域 先定义结构体类型,再定义结构体变量 一般形式:struct 结构体名 类型标识符 成员名;类型标识符 成员名;.;struct 结构体名 变量名表列;形式:struct 结构体名 类型标识符 成员名;类型标识符 成员名;.变量名表列;例 struct student int num;char name20;char sex;int age;float score;char addr30;stu1,stu2;形式:struct 类型标识符 成员名;类型标识符 成员名;.变量名表列;例 struct int num;char

3、name20;char sex;int age;float score;char addr30;stu1,stu2;用无名结构体直接定义变量只能一次 结构体类型与结构体变量概念不同类型:不分配内存;变量:分配内存类型:不能赋值、存取、运算;变量:可以 结构体可嵌套 结构体成员名与程序中变量名可相同,不会混淆 结构体类型及变量的作用域与生存期 引用规则 结构体变量不能整体引用,只能引用变量成员可以将一个结构体变量赋值给另一个结构体变量结构体嵌套时逐级引用成员(分量)运算符优先级:1结合性:从左向右引用方式:结构体变量名.成员名 形式一:struct 结构体名 类型标识符 成员名;类型标识符 成员

4、名;.;struct 结构体名 结构体变量=初始数据;例 struct student int num;char name20;char sex;int age;char addr30;struct student stu1=112,“Wang Lin”,M,19,“200 Beijing Road”;struct 结构体名 类型标识符 成员名;类型标识符 成员名;.结构体变量=初始数据;例 struct student int num;char name20;char sex;int age;char addr30;stu1=112,“Wang Lin”,M,19,“200 Beijing

5、Road”;struct 类型标识符 成员名;类型标识符 成员名;.结构体变量=初始数据;例 struct int num;char name20;char sex;int age;char addr30;stu1=112,“Wang Lin”,M,19,“200 Beijing Road”;结构体数组的定义三种形式:形式一:struct student int num;char name20;char sex;int age;struct student stu2;形式二:struct student int num;char name20;char sex;int age;stu2;形式三

6、:struct int num;char name20;char sex;int age;stu2;numnamesexagenumnamesexagestu0stu125B例 struct int num;char name20;char sex;int age;stu=,;结构体数组引用引用方式:结构体数组名下标.成员名 struct student int num;char name20;char sex;int age;stu3;stu1.age+;strcpy(stu0.name,”ZhaoDa”);struct person char name20;int count;leader

7、3=“Li”,0,“Zhang”,0,”Wang“,0;main()int i,j;char leader_name20;for(i=1;i=10;i+)scanf(%s,leader_name);for(j=0;j3;j+)if(strcmp(leader_name,leaderj.name)=0)leaderj.count+;for(i=0;i成员名结构体变量名.成员名指向运算符优先级:1结合方向:从左向右例 int n;int *p=&n;*p=10;n=10struct student stu1;struct student *p=&stu1;=101;(*p).num=101 用结构

8、体变量的成员作参数-值传递 用指向结构体变量或数组的指针作参数-地址传递 用结构体变量作参数-多值传递,效率低struct data int a,b,c;main()void func(struct data);struct data arg;arg.a=27;arg.b=3;arg.c=arg.a+arg.b;printf(arg.a=%d arg.b=%d arg.c=%dn,arg.a,arg.b,arg.c);printf(Call Func().n);func(arg);printf(arg.a=%d arg.b=%d arg.c=%dn,arg.a,arg.b,arg.c);voi

9、d func(struct data parm)printf(parm.a=%d parm.b=%d parm.c=%dn,parm.a,parm.b,parm.c);printf(Process.n);parm.a=18;parm.b=5;parm.c=parm.a*parm.b;printf(parm.a=%d parm.b=%d parm.c=%dn,parm.a,parm.b,parm.c);printf(Return.n);arga:27b:3c:30(main)(func)parma:27b:3c:30copyarga:27b:3c:30(main)(func)parma:18b:

10、5c:90arga:27b:3c:30(main)arga:27b:3c:30(main)struct data int a,b,c;main()void func(struct data *parm);struct data arg;arg.a=27;arg.b=3;arg.c=arg.a+arg.b;printf(arg.a=%d arg.b=%d arg.c=%dn,arg.a,arg.b,arg.c);printf(Call Func().n);func(&arg);printf(arg.a=%d arg.b=%d arg.c=%dn,arg.a,arg.b,arg.c);void f

11、unc(struct data *parm)printf(parm-a=%d parm-b=%d parm-c=%dn,parm-a,parm-b,parm-c);printf(Process.n);parm-a=18;parm-b=5;parm-c=parm-a*parm-b;printf(parm-a=%d parm-b=%d parm-c=%dn,parm-a,parm-b,parm-c);printf(Return.n);arga:18b:5c:90(main)arga:27b:3c:30(main)arga:27b:3c:30(main)(func)parm*arga:18b:5c:

12、90(main)(func)parm*结构体变量的定义、引用和初始化:struct .成员操作符 结构体数组的定义、引用和初始化;指向结构体的指针的用法-指向运算符试验目的 掌握结构体类型变量的定义和使用;掌握结构体类型数组的概念和应用。试验内容 有5个学生,每个学生的数据包括学号、姓名、三门课的成绩;编写五个子函数:函数input,以表中的数据初始化5个学生的数据;函数average,求出每个学生的平均分;函数class_average,求出每门课的平均分;函数max,求出平均分最高的学生;函数class_max,求出每门课分数最高的学生.在主函数main中分别调用五个子函数,并输出五个学生的数据和平均分、三门课程的平均分、平均分最高和每门课分数最高的学生数据。numnameclass1class2class3001Li Ming87.0094.0079.00002Chen Fei68.0089.0082.00003Sun Jie78.0090.0074.00004He Wei69.0070.0062.00005Liu Li84.0092.0081.00

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!