第9章 结构体、共用体、枚举

9.1 结构体

1.对于同类型结构体变量之间可以整体一次赋值

9.2 指向结构体的指针

9.2.1结构体变量的指针

1.定义格式:struct 结构体名 *结构体指针变量名
2.赋值格式:结构体指针变量名=&结构体变量
3.结构体成员引用:
(1)(*结构体指针变量).成员名
(2)结构体指针变量->成员名
例:

#include<stdio.h>
struct stu
{int num;char name[20];int score;
};
int main()
{struct stu s={1001,"zhang",99};struct stu *p;p=&s;printf("num\tname\tscore\n");printf("%d\t%s\t%d\n",s.num,s.name,s.score);printf("%d\t%s\t%d\n",(*p).num,(*p).name,(*p).score);printf("%d\t%s\t%d\n",p->num,p->name,p->score);return 0;
}

9.2.2 结构体数组的指针:与指向多维数组的指针类似
9.2.3 结构体(数组)作函数的参数、指向结构体的指针作函数参数

9.3 共用体(union)

1.共用体类型:为了节省内存空间,把不同用途的数据存放在同一存储区域
2.共用体类型变量在内存中所占空间不是所有成员空间长度和,而是长度最大成员项的存储空间
3.由于各成员共用一个存储空间,所以第一次赋得值会被第二次覆盖,覆盖后归0
4.定义:union 共用体名{成员列表};
5.初始化:union 共用体类型名 共用体变量名={初始值};

9.4 枚举类型(enum)

1.枚举类型定义:enum 枚举名{枚举值表};
2.枚举变量定义:enum 枚举类型名{枚举值表}枚举变量表列;
3.枚举数组定义:enum 枚举类型名 数组名[长度];
4.枚举变量初始化:枚举变量=枚举元素;
例:

enum weekday{sun,mon,tue,wed,thu,fri,sat};
enum weekday a,b;

enum weekday{sun,mon,tue,wed,thu,fri,sat}a,b;
enum weekday enday[7];
a=mon;
b=(weekday)6;

5.枚举数据的输入输出:不能对枚举数据直接输入输出,但枚举变量可作为整型变量处理。
(1)输入:scanf(“%d”,&a);
(2)输出:
1)直接输出枚举变量中存放的整型值,但不直观:

a=mon;printf(“%d”,a);

2)利用多分支选择语句输出对应字符串:

Switch(a)
{
case sun:printf(“sun”);break;
case mon:printf(“mon”);break;

}

3)用二维字符数组存储枚举常量对应的字符串

enum flag{first,second} fg;
char *name[]={“first”,”second”};
fg=first;
printf(“%s”,name[fg]);

9.5 用typedef关键字定义类型

1.可以用typedef为已有类型名定义新的类型名,可以声明数组、字符串类型
2.typedef与#define类似,#define是在预编译s时处理的,只能做简单替换,typedef是编译时处理的
3.typedef有利于程序通用与移植

C语言程序设计 细节总结(第9章 结构体共用体枚举)相关推荐

  1. c语言循环程序设计教案,10 《C语言程序设计》教案 第三章 程序的控制结构(6)—循环结构 while和do while.doc...

    10 <C语言程序设计>教案 第三章 程序的控制结构(6)-循环结构 while和do while.doc C 语言程序设计课程教案表 授课题目 第三章 程序的控制结构 (6) 循环结构 ...

  2. 大学 C语言程序设计第一讲,c语言程序设计1第一讲(第一章上).ppt

    c语言程序设计1第一讲(第一章上).ppt 知识可以改变命运! 高级语言程序设计 主讲教师:贾彩燕 计算机与信息技术学院 计算机科学与技术系 cyjia@bjtu.edu.cn 计算机与人沟通 计算机 ...

  3. 郑莉版java第三章答案_java语言程序设计(郑莉)第七章课后习题答案.docx

    java语言程序设计(郑莉)第七章课后习题答案.docx 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: if (matrix.isTria ...

  4. 郑莉java课后答案,Java语言程序设计(郑莉)第三章课后习题答案

    <Java语言程序设计(郑莉)第三章课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计(郑莉)第三章课后习题答案(10页珍藏版)>请在人人文库网上搜索. 1. ...

  5. 谭浩强C语言程序设计代码示例第6章(笔记)

    谭浩强C语音程序设计代码示例第六章(新手入门笔记) 第一章包含参考书,在线编译工具,代码,注释等. 遵循共享互助原则 谭浩强C语言程序设计代码示例(1-3章) 谭浩强C语言程序设计代码示例第4章(笔记 ...

  6. 谭浩强C语言程序设计代码示例第5章(笔记)

    谭浩强C语音程序设计代码示例第四章(新手入门笔记) 第一章包含参考书,在线编译工具,代码,注释等. 遵循共享互助原则 谭浩强C语言程序设计代码示例(1-3章) 谭浩强C语言程序设计代码示例第4章(笔记 ...

  7. c语言第八章上机答案,C语言程序设计上机指导第8章答案.doc

    C语言程序设计上机指导第8章答案 上 机 报 告 课程名称 计算机程序设计基础(C语言) 专业班级 姓 名 学 号 上机题目函数调用程序设计实 验 室机房同组人数1实验时间年 月 日成 绩指导教师一. ...

  8. c语言程序设计的顺序结构的常用控制语句,C语言程序设计教程-第03课-顺序结构的程序设计.ppt...

    <C语言程序设计教程-第03课-顺序结构的程序设计.ppt>由会员分享,可在线阅读,更多相关<C语言程序设计教程-第03课-顺序结构的程序设计.ppt(21页珍藏版)>请在人人 ...

  9. c语言选择循环实验报告,C语言程序设计实验报告选择与循环结构程序设计.doc

    C语言程序设计实验报告选择与循环结构程序设计.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的 ...

  10. c语言程序设计循环结构实验报告,C语言程序设计实验报告选择与循环结构程序设计.doc...

    C语言程序设计实验报告选择与循环结构程序设计 学 生 实 验 报 告 学 院: 软件与通信工程学院 课程名称: C++与程序设计 专业班级: 通信121 姓 名: 学 号: 学生实验报告(2) 学生姓 ...

最新文章

  1. php与mysql字符集,php与mysql字符集编码问题
  2. 01.The Introduction of Linux
  3. VSS2005 添加文件夹方法!
  4. centos7 源码安装goaccess
  5. 服务器内部错误_阿里云服务器被CC攻击怎么办
  6. Drchen的学习清单
  7. 惠普m128fn中文说明书_惠普M128fn说明书
  8. AltiumDesigner多通道复用设计教程(亲测可行版本)
  9. 仿唯品会尺码助手弹框 带箭头叉号的popupwindow BubbleLayout
  10. 华东理工《文献检索》MOOC (3)---精通web of science检索结果分析、JCR数据库检索
  11. 2018php最新面试题之PHP核心技术
  12. crypto buuctf 世上无难事
  13. Oracle的基础知识点汇总
  14. colgroup的学习
  15. NPL基础入门之新闻本分类赛题理解Test1
  16. 新朝旧将 vite和webpack煮酒论英雄
  17. Java开发手册(黄山版)
  18. surf.detectAndCompute()提取keypoint中关键点坐标
  19. 计算机网络英文缩写词
  20. 开源教育论坛| ChinaOSC

热门文章

  1. 2022-2028年中国汽车天线行业市场需求与投资规划分析报告
  2. Java 多线程概述
  3. C++ 笔记(30)— 友元函数与友元类
  4. ZooKeeper简单使用
  5. MyBatis 一对多、多对一的处理~
  6. CPU Cache原理与示例
  7. Ascend昇腾计算
  8. Laravel7使用Auth进行用户认证
  9. Redeclared ‘list_b‘ defined above without usage
  10. Content-Type 知识 介绍