第六章(续)结构体等构造数据类型.ppt
《第六章(续)结构体等构造数据类型.ppt》由会员分享,可在线阅读,更多相关《第六章(续)结构体等构造数据类型.ppt(54页珍藏版)》请在三一办公上搜索。
1、第六章 结构体等构造数据类型,第6章 结构体等构造数据类型,6.1 结构体6.2 共用体6.3 枚举型6.4 Typedef的用途,C的数据类型:,整型 int 基本数据类型 浮点型 float double 字符型 char 数组 以 为标志 结构 struct 构造类型 复杂数据类型 联合 union 枚举 enum 指针类型 以*为标志 空类型,结构体类型的数据由若干个变量组成,每一个变量既可以是一个基本数据类型的数据,也可以是另一个构造类型的数据。结构体实际上是C编译没有提供的数据类型。,6.1 结构体,结构体的说明 一般格式:struct 结构体名 类型名1 结构体成员名表1;类型名
2、2 结构体成员名表2;。类型名n 结构体成员名表n;,例:要先定义一个结构体类型:time。time是时间,当然可以用三个整型变量来表示一个时间,int hour;int minute;int second;但是不能表示三个变量之间的逻辑关系。,若把时间说明为TIME,而TIME含有小时、分、秒三个成分,则TIME的结构体说明是:struct TIME int hour;int minute;int second;,其中struct 是关键字,TIME是结构体的类型名,它实际上规定了一种新的复杂数据类型。在随后的程序中就可以使用TIME定义结构体变量了。例:struct TIME meetin
3、g_begin;,结构体类型变量的定义,结构体变量定义有三种方法:方法一:先说明结构体,再定义结构体变量。例:struct point int x;int y;struct point p1,p2;,方法二:在说明结构体类型的同时定义结构体变量。例如:struct TIME int hour;int minute;int second;meeting_begin,meeting_end;,这种方法的语法格式是:struct 结构体名 类型名1 结构体成员名表1;类型名2 结构体成员名表2;。类型名n 结构体成员名表n;结构体变量表;,方法三:是在说明结构体时直接定义结构体变量,并且不用指定结构
4、体名。struct int hour;int minute;int second;meeting_begin,meeting_end;,这种方法的语法格式是:struct 类型名1 结构体成员名表1;类型名2 结构体成员名表2;。类型名n 结构体成员名表n;结构体变量表;,结构体成员的引用 C语言中对结构体变量的使用是通过对其成员的引用来实现的。一般不能对结构体变量进行整体的引用。引用的方法:结构体变量名.成员名 符号“.”是依据结构体变量名存取结构体成员的运算符。,#include stdio.hvoid main()struct TIME int hour;int minute;int s
5、econd;struct TIME mt_begin;,例:用符号“.”引用结构体变量的成员。,mt_begin.hour=8;mt_begin.minute=30;mt_begin.second=00;printf(n meeting time is%2d:%2d:%2d,mt_begin.hour,mt_begin.minute,mt_begin.second);,运行结果:meeting time is 8:30:00,结构体的初始化 对结构体变量的初始化与对数组的初始化相似,因为存储分配时,通常按照各成员在结构体中出现的先后顺序连续排列。struct TIME audit_begin=
6、8,30,0;如果初始化数值的个数小于结构体成员的个数,系统会自动将其它成员初始化为0。,#include stdio.hvoid main()struct TIME int hour;int minute;int second;struct TIME meeting_begin=8,30,00;,例:结构体变量的初始化,printf(n audition time is%2d:%2d:%2d,audit_begin.hour,audit_begin.minute,audit_begin.second);,运行结果:meeting time is 8:30:00,struct student_
7、type long int num;/*学号*/struct date_type int month;int day;int year;birthday;/*出生日期*/stu;可以使用scanf(“%d”,&stu.birthday.day)输入数据。但是不能引用stu.birthday。,结构体的嵌套,注意,对嵌套结构体的引用必须引用到最末一级。,注:结构体类型和结构变量,结构体类型和结构体变量是不同概念。先定义结构类型,再定义结构变量。定义结构类型后,不会为其分配内存空间。只有当变量被说明,才会为其分配存储空间。结构类型不能进行运算、赋值,而结构变量可以。,结构体中包含数组,struct
8、 student_type long int num;/*学号*/char name10;/*姓名*/struct date_type int month;int day;int year;birthday;/*出生日期*/stu;,例:结构体中包含数组。#include stdio.hvoid main()int i;struct STOCK char stockname16;/*股票名称*/char stockcode7;/*股票代码*/float price3;/*买入价、卖出价、成交价*/;,Struct STOCK sfz=ShenFaZhan,000001,8.77,8.78,8.
9、78;/*用深发展的数据初始化结构体变量sfz*/printf(n%s%s,sfz.stockname,sfz.stockcode);/*输出股票名称和股票代码*/for(i=0;i3;i+)/*输出股票的买入价、卖出价和成交价*/printf(%6.2f,sfz.pricei);,结构体数组,定义结构体数组的语法:struct 结构体名 数组名长度;访问结构体数组中的结构体成员的方法是:数组名下标.成员名,6.2 公用体,公用体又称为联合体。在编制一些比较高级的程序时,有时需要把不同类型的变量放在同一存储区域内。一个变量x,它既可以用来存储一个单字符还可以存储一个浮点数或是一个整数,当然,在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 结构 构造 数据类型
链接地址:https://www.31ppt.com/p-5666795.html