C程序设计第9章 用户自己建立数据类型
更新时间:2023-07-29 23:46:01 阅读量: 实用文档 文档下载
- c程序设计第四版推荐度:
- 相关推荐
第四版
第9章 用户自己建立数据类型9.1 定义和使用结构体变量 9.2 使用结构体数组 9.3 结构体指针 9.4 用指针处理链表 9.5 共用体类型 9.6 使用枚举类型 9.7 用typedef声明新类型名 声明新类型名
第四版
9.1 定义和使用结构体变量9.1.1 自己建立结构体类型 9.1.2 定义结构体类型变量 9.1.3 结构体变量的初始化和引用
第四版
9.1.1 自己建立结构体类型用户自己建立由不同类型数据组成的组合型的数据结 构,它称为结构体。 它称为结构体。 结构体 例如,一个学生的学号、姓名、性别、年龄、成绩、 例如,一个学生的学号、姓名、性别、年龄、成绩、 家庭地址等项,是属于同一个学生的,因此组成一个 家庭地址等项,是属于同一个学生的,因此组成一个 组合数据, 的变量, 组合数据,如student_1的变量,反映它们之间的内 的变量 在联系。 在联系。
第四版
9.1.1 自己建立结构体类型struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; 由程序设计者指定了一个结 构体类型struct Student。 构体类型 。 它包括 num,name,sex,age,score,ad dr等不同类型的成员。 等不同类型的成员。 等不同类型的成员
第四版
9.1.1 自己建立结构体类型声明一个结构体类型的一般形式为: 声明一个结构体类型的一般形式为: 一个结构体类型的一般形式为 struct 结构体名 { 成员表列 }; 成员名; 类型名 成员名
第四版
9.1.1 自己建立结构体类型说明: 说明: (1) 可以根据需要设计出多种结构体类型,例如 可以根据需要设计出多种结构体类型, 根据需要设计出多种结构体类型 struct Teacher struct Worker struct Date等结构体类型 等结构体类型 各自包含不同的成员
第四版
9.1.1 自己建立结构体类型说明: 说明: (2)结构体成员可以属于另一个结构体类型。 结构体成员可以属于另一个结构体类型。 结构体成员可以属于另一个结构体类型 struct Date { int month; int day; int year; };
struct Stu { int num;char name[20]; char sex;int age; struct Date birthday; char addr[30]; }; num name sex age birthday month day year addr
第四版
9.1.2 定义结构体类型变量1. 先声明结构体类型,再定义该类型变量 先声明结构体类型, struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; struct Student student1,student2; 结构体类型名 结构体变量名
第四版
9.1.2 定义结构体类型变量2.在声明类型的同时定义变量 在声明类型的同时定义变量 struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; } student1,student2;
第四版
9.1.2 定义结构体类型变量3. 不指定类型名而直接定义结构体类型变量 struct { int num; char name[20]; char sex; int age; float score; char addr[30]; } student1,student2;
第四版
9.1.2 定义结构体类型变量(
1) 结构体类型与结构体变量是不同的概念,不要混同。只能对变 结构体类型与结构体变量是不同的概念,不要混同。 量赋值、存取或运算,而不能对一个类型赋值、存取或运算。 量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译 时,对类型是不分配空间的,只对变量分配空间。 对类型是不分配空间的,只对变量分配空间。 (2) 结构体类型中的成员名可以与程序中的变量名相同,但二者不 结构体类型中的成员名可以与程序中的变量名相同, 代表同一对象。 代表同一对象。 (3) 结构体变量中的成员可以单独使用,它的作用与地位相当于普 结构体变量中的成员可以单独使用, 通变量。 通变量。
第四版
9.1.3 结构体变量的初始化和引用把一个学生的信息(包括学号 姓名、性别、住址)放在一个结构 包括学号、 例9.1 把一个学生的信息 包括学号、姓名、性别、住址 放在一个结构 体变量中,然后输出这个学生的信息。 体变量中,然后输出这个学生的信息。 #include <stdio.h> int main() { struct student { long int num; char name[20]; char sex; char addr[20]; }a={10101,"Li Lin",'M',"123 Beijing Road"}; printf("NO.:%ld\nname:%s\nsex:%c\naddress:%s\n", a.num,,a.sex,a.addr); return 0; }
第四版
#include <stdio.h> int main() { struct Student { long int num; char sex; char name[20]; char addr[20];
}a={10101,“Li Lin”,‘M’, “123 Beijing Road”}; a.num=10010; 对
printf(“%s\n”,a); 不对 …… }
第四版
#include <stdio.h> int main() { struct Student { long int num; char sex; struct Student b; b=a; …… } 对 对 b.num++; char name[20]; char addr[20];
}a={10101,“Li Lin”,‘M’, “123 Beijing Road”};
第四版
#include <stdio.h> int main() { struct Student { long int num; char sex; char name[20]; char addr[20]; 对
}a={10101,“Li Lin”,‘M’, “123 Beijing Road”}; scanf(″%ld″,&a.num); printf(″%o″,&a); …… } 对
scanf(“%ld,%s,%c,%s\n”,&a); 错
第四版
#include <stdio.h> int main() { struct Date { int month; int day; int year; }; struct Stu { int num;char name[20]; char sex;int age; struct Date birthday; char addr[30]; }a,b; a.birthday.month=12; 对 a.age=10; b.age=9; 对 sum=a.age+b.age; 对 …… }
第四版
输入两个学生的学号、姓名和成绩,输出成绩较高学生的学号、姓名和成绩。 例9.2 输入两个学生的学号、姓名和成绩,输出成绩较高学生的学号、姓名和成绩。 #include <stdio.h> int main() { struct stu { int num; char name[20]; float score; }stu1,stu2; scanf("%d%s%f",&stu1.num,,&stu1.score); scanf("%d%s%f",&stu2.num,,&stu2.score); printf("The higher score is:\n"); if (stu1.score>stu2.score) printf("%d %s %6.2f\n",stu1.num,, stu1.score); else if (stu1.score<stu2.score) printf("%d %s %6.2f\n",stu2.num,, stu2.score); else { printf("%d %s %6.2f\n",stu1.num,stu1.nam
e, stu1.score); printf("%d %s %6.2f\n",stu2.num,, stu2.score); } return 0; }
第四版
9.2 使用结构体数组9.2.1 定义结构体数组 9.2.2 结构体数组的应用举例
第四版
9.2.1定义结构体数组 9.2.1定义结构体数组例9.3 有3个候选人,每个选民只能投票选一人, 个候选人,每个选民只能投票选一人, 个候选人 要求编一个统计选票的程序, 要求编一个统计选票的程序,先后输入被选人的名字 ,最后输出各人得票结果。 最后输出各人得票结果。
正在阅读:
C程序设计第9章 用户自己建立数据类型07-29
解析藏传佛教的主要派别及其特点05-15
公共卫生服务领导小组职责08-25
河南省焦作市2016-2017学年高一上学期期末统考历史试题 Word版含05-10
智慧的时代作文700字06-15
软件工程理论知识 - 图文05-13
2019年度意识形态工作总结02-26
述职述廉述学报告(精选多篇)09-26
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 程序设计
- 建立
- 类型
- 自己
- 数据
- 用户
- 两大法宝使你的微笑更迷人
- 大众奥迪车系故障码大全
- 金属工艺学知识点总结
- 2018税务局科室年终工作总结
- 怎么给word文档加密?
- 小米路由器设置地址打不开该怎么办
- “一带一路”发展战略学习读本考试题-88分答案
- 雷雨前.教案doc
- 电子商铺空间分布规律及其影响因素探究——来自淘宝网的实证
- 工程专案改善报告
- 广东省会计从业资格会计专业知识考试《会计基础》模拟试卷一
- 云南锡业股份有限公司年度报告摘要
- Word2003物理作图编辑技巧
- 隧道窑余热锅炉技术
- 1.3 动物的生长时期(1)
- 物理小论文--冰箱的工作原理及如何实现冰箱节能
- 第二讲 牛顿-莱布尼茨公式
- A新视野大学英语3第二版单词表
- 春风化雨 润物无声——浅谈班主任工作的艺术与方法
- 坐标转换三参数计算器使用说明