欢迎来到天天文库
浏览记录
ID:50353096
大小:1.51 MB
页数:106页
时间:2020-03-08
《C语言程序设计(Visual C++ 6.0环境)教学课件 第7章结构体、联合体和枚举类型.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、本章导读结构体、联合体、枚举类型都是用户自己定义的数据类型,这些类型的数据是用户根据实际需要来组织的。结构体和联合体都是构造类型的数据,枚举类型是基本类型的数据。《C语言程序设计》(VisualC++6.0环境)返回本书目录第7章结构体、联合体和枚举类型本章主要知识点(1)结构体类型数据的定义,结构变量的说明及引用方法结构指针的定义、使用以及结构指针在C程序中的应用——链表的建立、输出、删除与插入等操作(2)联合体类型数据的定义,联合变量的说明及引用方法(3)枚举类型数据的定义,枚举变量的说明及
2、引用方法(4)了解自定义类型的概念和类型定义方法及应用第7章结构体、联合体和枚举类型《C语言程序设计》(VisualC++6.0环境)返回本章导读7.1结构体7.2联合体7.3枚举类型7.4自定义类型7.5综合实训《C语言程序设计》(VisualC++6.0环境)返回本章目录7.1结构体7.1.1结构体与结构变量7.1.2结构成员的引用7.1.3结构数组7.1.4结构指针与链表7.1.1结构体与结构变量《C语言程序设计》(VisualC++6.0环境)返回本节目录“结构体”是一种构造类型,是由数目
3、固定,类型相同或不同的若干有序变量组成的集合。组成结构体的每个数据都称为结构体的“成员”,或称“分量”。返回本节目录1.结构体类型的声明2.结构变量的定义3.结构体类型与结构变量1.结构体类型的声明《C语言程序设计》(VisualC++6.0环境)返回7.1.1目录声明一个结构体类型的一般形式为:struct<结构体名(也称为结构体标记)>{成员表列(也称为域表)};应注意在括号后的分号是不可少的。成员表列由若干个成员组成,每个成员都是该结构体的一个组成部分。对每个成员也必须作类型说明,其形式为:<
4、类型说明符><成员名>;成员名的命名应符合C语言标识符的书写规定,结构体成员名可与程序中其它变量同名,互不干扰。2.结构变量的定义《C语言程序设计》(VisualC++6.0环境)返回7.1.1目录对于已经声明的结构体类型,就可有对应于该类型的“结构类型变量”,简称为“结构变量”。定义结构变量有以下三种方法:(1)先声明结构体类型,再定义结构变量即在先前声明的结构体类型后加上以下形式:struct<结构体名><结构变量表列>;(2)在声明结构体类型的同时定义结构变量即被定义的结构变量直接在结构体类型
5、声明的“}”后给出。一般形式为:struct<结构体名>{〈成员表列〉}〈结构变量表列>;(3)直接定义结构变量即省略结构体名。一般形式为:struct{<成员表列>}<结构变量表列>;3.结构体类型与结构变量《C语言程序设计》(VisualC++6.0环境)返回7.1.1目录结构体类型与结构变量的最大区别在于:结构变量占有一定的内存空间,而结构体类型只是一种数据类型的结构描述,并不占用内存空间。structbox{floatlength;floatwidth;floatheight;};它表明st
6、ructbox结构体类型由大括号中所列的一些数据项组成,共需占用4x3=12个字节。在此之后,若进行结构变量的定义如:structboxbox1;表明box1为structbox结构体类型变量,它占用了12个字节的内存单元。7.1.2结构成员的引用《C语言程序设计》(VisualC++6.0环境)返回本节目录对结构变量的访问是通过对结构变量各个成员的访问来进行的,结构变量成员描述为:<结构变量名>.<成员名>在引用中应遵循以下原则:(1)如果成员本身又是一个结构体类型时,则必须逐级找到最低一级的成员
7、才能使用。(2)对成员变量的使用与普通变量完全相同,可根据其类型进行相应的运算。(3)可以引用成员的地址,也可以引用结构体变量的地址。(4)允许将一个结构变量直接赋值给另一个具有相同结构的结构变量。【例7.1】例7.1(1)《C语言程序设计》(VisualC++6.0环境)返回7.1.2目录【例7.1】利用结构体对三名学生的学号、姓名、性别、成绩进行输入与输出。程序名为l7_1.cpp。#include"stdio.h"structstu{longintnum;charname[20];charse
8、x;floatscore;}student1,student2={960002,"Zhanghongli",'W',98},student3;/*对student2初始化*/main(){student1.num=960001;/*对student1各成员赋值*/scanf("%s",student1.name);student1.sex='M';student1.score=65;student3=student1;/*对student3直接赋值*/例7.1(2接上
此文档下载收益归作者所有