欢迎来到天天文库
浏览记录
ID:36276969
大小:748.31 KB
页数:54页
时间:2019-05-08
《(续)结构体等构造数据类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章结构体等构造数据类型第6章结构体等构造数据类型6.1结构体6.2共用体6.3枚举型6.4Typedef的用途C的数据类型:整型int基本数据类型浮点型floatdouble字符型char数组以[]为标志结构struct构造类型复杂数据类型联合union枚举enum指针类型以*为标志空类型结构体类型的数据由若干个变量组成,每一个变量既可以是一个基本数据类型的数据,也可以是另一个构造类型的数据。结构体实际上是C编译没有提供的数据类型。6.1结构体结构体的说明一般格式:struct结构体名{类型名1结构体成员名表1;类型名2结构体
2、成员名表2;。。。类型名n结构体成员名表n;};例:要先定义一个结构体类型:time。time是时间,当然可以用三个整型变量来表示一个时间,inthour;intminute;intsecond;但是不能表示三个变量之间的逻辑关系。若把时间说明为TIME,而TIME含有小时、分、秒三个成分,则TIME的结构体说明是:structTIME{inthour;intminute;intsecond;};其中struct是关键字,TIME是结构体的类型名,它实际上规定了一种新的复杂数据类型。在随后的程序中就可以使用TIME定义结构体变量了
3、。例:structTIMEmeeting_begin;结构体类型变量的定义结构体变量定义有三种方法:方法一:先说明结构体,再定义结构体变量。例:structpoint{intx;inty;};structpointp1,p2;方法二:在说明结构体类型的同时定义结构体变量。例如:structTIME{inthour;intminute;intsecond;}meeting_begin,meeting_end;这种方法的语法格式是:struct结构体名{类型名1结构体成员名表1;类型名2结构体成员名表2;。。。类型名n结构体成员名表n
4、;}结构体变量表;方法三:是在说明结构体时直接定义结构体变量,并且不用指定结构体名。struct{inthour;intminute;intsecond;}meeting_begin,meeting_end;这种方法的语法格式是:struct{类型名1结构体成员名表1;类型名2结构体成员名表2;。。。类型名n结构体成员名表n;}结构体变量表;结构体成员的引用C语言中对结构体变量的使用是通过对其成员的引用来实现的。一般不能对结构体变量进行整体的引用。引用的方法:结构体变量名.成员名符号“.”是依据结构体变量名存取结构体成员的运算符。
5、#include"stdio.h"voidmain(){structTIME{inthour;intminute;intsecond;};structTIMEmt_begin;例:用符号“.”引用结构体变量的成员。mt_begin.hour=8;mt_begin.minute=30;mt_begin.second=00;printf("meetingtimeis%2d:%2d:%2d",mt_begin.hour,mt_begin.minute,mt_begin.second);}运行结果:meetingtimeis8:30:
6、00结构体的初始化对结构体变量的初始化与对数组的初始化相似,因为存储分配时,通常按照各成员在结构体中出现的先后顺序连续排列。structTIMEaudit_begin={8,30,0};如果初始化数值的个数小于结构体成员的个数,系统会自动将其它成员初始化为0。#include"stdio.h"voidmain(){structTIME{inthour;intminute;intsecond;};structTIMEmeeting_begin={8,30,00};例:结构体变量的初始化printf("auditiontimeis
7、%2d:%2d:%2d",audit_begin.hour,audit_begin.minute,audit_begin.second);}运行结果:meetingtimeis8:30:00structstudent_type{longintnum;/*学号*/structdate_type{intmonth;intday;intyear;}birthday;/*出生日期*/}stu;可以使用scanf(“%d”,&stu.birthday.day)输入数据。但是不能引用stu.birthday。结构体的嵌套注意,对嵌套结构体的引
8、用必须引用到最末一级。注:结构体类型和结构变量结构体类型和结构体变量是不同概念。先定义结构类型,再定义结构变量。定义结构类型后,不会为其分配内存空间。只有当变量被说明,才会为其分配存储空间。结构类型不能进行运算、赋值,而结构变量可以。结构体中包含数
此文档下载收益归作者所有