- 4
- 0
- 约8.42千字
- 约 33页
- 2017-05-05 发布于四川
- 举报
第09章结构体_共用体和枚举类型
第9章 结构体、共用体和枚举类型 9.1 结构体的定义及应用 9.2 位域* 9.3 共用体的定义及应用 9.4 枚举类型 9.1 结构体的定义及应用 设每个学生的数据包括: 姓名:字符型数组 年龄:无符号整型 成绩:单精度浮点类型 如何存放10位学生的原始数据? 解:定义3个数组分别存放10位学生的姓名、年龄和成绩,用数组下标区别不同的学生: char name[10][20]; //存放10位学生的姓名 int age[10]; // 年龄 float score[10]; // 成绩 用name[i]、age[i]和score[i]表示第i个学生数据。 不足:变量多、未直接反映同一学生数据间的联系。 改进: ①定义结构体类型,描述同一学生的多个数据: struct student{//反映同一学生数据间的联系 char name[20]; //姓名 int age; //年龄 float score; //成绩 }; ②定义student类型的数组,存放10位学生的数据: student s[10]; //变量少 结构体可将不同类型的数据组织为一个整体。 9.1.1 结构体类型的定义 结构体类型需先定义后使用,其定义格式: struct 结构体类型名{ 类型1 成员1; 类型2 成员2; …… }; 9.1.2 结构体类型变量的定义 定义结构体类型变量的格式为: 结构体类型名 变量列表; 或 struct 结构体类型名 变量列表; 其中,结构体类型名为已定义的类型;多个变量之间用逗号分隔;后一种格式与C兼容。 例如: student s1,s2,s3[10]; 或 struct student s1,s2,s3[10]; student类型变量s1的内存分配图 结构体类型变量定义的其他形式 结构体类型变量也可在声明结构体类型的同时定义。 例如: struct Date{ int year,month,day; }today,yesterday; 再如: struct{ //定义一个无名结构类型 int a; float b; }x,y; 无名结构体类型不能在该类型定义之外定义其变量。 结构体类型变量的初始化 结构体变量的初始化:与数组的初始化方式类似,在花括号中,按结构体成员说明的顺序依次列出其值。 例如: student s1={Jenny,20,98}; Date today={2007,1,2}; struct Complex{ float real,image; }c1={2.0f,3.0f},c2; 9.1.3 结构体类型变量的使用 访问结构体变量成员的格式为: 结构体变量.成员名 其中“.”是成员访问运算符。例如: today.year 表示访问结构体变量today的成员year。 相同结构体类型的变量之间可直接赋值。例如: struct weather{ double temp,wind; }w1={7.5,3.2},w2=w1; 其中“w2=w1;”等同于: w2.temp=w1.temp; w2.wind=w1.wind; 结构体类型变量不能直接输入/输出,其成员能否直接输入/输出,取决于其成员的类型,若是基本类型或字符数组,则可直接输入/输出。如: cins1; //错误 cins1.ages1.score; //正确 couts1; //错误 couts1.ages1.score;//正确 结构体类型变量做函数的形参时,调用函数的实参必须是相同结构体类型的变量。参数的传递方式为值传递,系统将实参的每个成员逐个拷贝给对应的形参成员。结构体类型变量也可做函数的返回值。 例9.1 编写求两分数之和的函数,并用它求1/8+5/24。 #includeiostream.h struct Fraction{ int num,den; //分别为分数的分子和分母 }; int gcd(int m,int n)//求m和n的最大公约数 { int t; if(mn){ t=m;m
您可能关注的文档
- 空间解析基础知识及其数学建模.ppt
- 科学前沿及哲学相对论.ppt
- 空间几何体的结构和其三视图和直观图复习课课件.ppt
- 稳赢一号产品介绍及销售逻辑.ppt
- 穆骏“科学技术的喜和忧”教学课件.ppt
- 空间关系描述及推理.ppt
- 突变和基因重组产生进化的原材料_自然选择决定生物进化的方向.ppt
- 窗口的组成和操作和菜单的操作.ppt
- 窗口操作及桌面.ppt
- 立体几何中翻转及折叠问题.ppt
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测生物试卷+答案.doc
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测语文试卷+答案.doc
- 四川省绵阳南山中学实验学校2025-2026学年高三上学期1月月考数学含答案.doc
- 2026届辽宁省大连市高三上学期双基考试物理试卷+答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测化学含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测生物含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测英语含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测政治含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试化学含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试生物含答案.doc
最近下载
- 湖南交通职业技术学院单招《数学》真题及参考答案详解(新).docx VIP
- 儿科护士年终工作总结.pptx VIP
- 第二章新时代新征程中国共产党的使命任务-2024版研究生新中特教材课件.pdf VIP
- 1资产评估执业准则——资产评估方法(征求意见 ….docx VIP
- 浙江省杭州市钱塘区2023-2024学年六年级上数学期末试卷(含答案).pdf VIP
- 利雅路燃烧机安装使用说明书GM1400-4500-cn.pdf VIP
- 第二章新时代新征程中国共产党的使命任务-2024版研究生新中特教材课件.pptx VIP
- 人教版九年级物理下册期末试卷(可打印).pdf VIP
- 湖北省黄冈市2022—2023学年九年级上学期数学期末教学质量监测试题【含答案】.pdf VIP
- EMERSON艾默生 European Instruction Manual Series WSNF Solenoid M12-II说明书用户手册.pdf
原创力文档

文档评论(0)