教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

第9章 结构体与枚举类型

来源:网络收集 时间:2026-08-24
导读: 第9章 结构与枚举类型【主要内容】掌握结构体的概念、结构体的定义、初始化、结构体变量的 引用、结构体数组的运用、学会使用结构体类型的数据,解决实 际问题。 【学习重点】结构数组。 四川信息职业技术学院《C语言》 第9章 结构与枚举类型第一节 第二节

第9章 结构与枚举类型【主要内容】掌握结构体的概念、结构体的定义、初始化、结构体变量的 引用、结构体数组的运用、学会使用结构体类型的数据,解决实 际问题。

【学习重点】结构数组。

四川信息职业技术学院·《C语言》

第9章 结构与枚举类型第一节 第二节 第三节 结构体变量 结构体数组 枚举类型

四川信息职业技术学院·《C语言》

第一节

结构体变量什么是“结构体” 呢???

就像自定义函数一样,C语言也提供了一种方法让 程序员自己定义数据类型,这就是“结构体”。

四川信息职业技术学院·《C语言》

第一节

结构体变量

一、结构体规则1.结构体类型的定义结构体是一种新数据类型,属构造类型,它由若干类型各异 的“成员”组成;描述这些“成员”可以使用任何基本数据类型, 甚至是另外一种构造数据类型都行。 打个比方,我们定义一种结构类型(person)描述青年,青 年由几个基本属性(即成员)决定(name,color,sex,age 等),我们可以用这个结构类型person去定义一个具体的青年人 zhangshan 。

该怎么定义???

四川信息职业技术学院·《C语言》

第一节

结构体变量

定义结构类型使用关键字“struct”。

struct person { char name[20]; /* 定义姓名 */ char color[10]; /* 定义肤色 */ char sex[2]; /* 定义性别 */ int age; /* 定义年龄 */ }; /* 注意这里有分号 */ struct person zhangshan, class_one[100];定义了结构类型person,并用该类型定义结构变量 zhangshan和结构数组class_one[100]。

四川信息职业技术学院·《C语言》

第一节

结构体变量你来试试!

定义一个商品结构类型goods,设商品包含属性有:商 品名、商品代码、厂商、单价、质量。struct goods { char goodsname[15]; char goodcode[15]; char companyname[30] ; float price, weight ; };四川信息职业技术学院·《C语言》

第一节

结构体变量

综上,结构体类型简称为结构类型,其定义格式为:

struct <结构体名> { 类型 成员1; 类型 成员2; …… };

四川信息职业技术学院·《C语言》

第一节

结构体变量

2.结构体类型变量的定义结构体变量简称为结构变量,它由结构类型定义,有三种定义方法。

⑴ 先定义结构类型,再定义结构变量 struct book /* 定义结构体类型 */ { char bookname[20]; float price; char publisher[20]; char author[10]; }; struct book mybook, storybook;用这种方法定义结构变量,是最常用的方法,但不能省略关键字 “struct”。四川信息职业技术学院·《C语言》

第一节

结构体变量

⑵ 定义结构类型的同时定义结构变量

struct book /* 定义结构体类型 */ { char bookname[20]; float price; char publisher[20]; char author[1

0]; } struct book mybook, storybook;

四川信息职业技术学院·《C语言》

第一节

结构体变量

⑶ 不定义结构体名,直接定义结构变量

struct /* 不定义结构体名 */ { char bookname[20]; float price; char publisher[20]; char author[10]; } struct book mybook, storybook;

四川信息职业技术学院·《C语言》

第一节补充说明:

结构体变量

当某结构类型的成员又是另外一个结构类型时,称嵌套定义。struct brith_date { int month ; int day ; int year ; }; struct { char name[10] ; char address[30]; char tel[12]; int age; struct data birth_day; char sex[3]; } student_01, employee;四川信息职业技术学院·《C语言》

定义了student_01 和employee两个变量, 但是没有定义此结构体 的名字,因此不能再定 义与student_01和 employee同类的其它结 构变量了!

第一节 提示:

结构体变量

成员名可以与程序中的其它变量名相同,两者有不同的从属关系, 系统并不会混淆;结构体类型是抽象的,它仅告诉系统这个类型由那些类型的成员 构成,它并不占内存空间;结构体变量是具体的,它占有一片连 续的内存空间,空间大小是所有成员变量所占的字节数的总和。 编程时,常用“sizeof(struct 结构名 结构变量名)”计算得出。

四川信息职业技术学院·《C语言》

第一节

结构体变量

3.访问结构体变量成员的方法 对结构体成员的访问要用成员运算符“·” 成员运算符虽然写法同小数点,但是完全没有小数点的含义。

在C运算符中,它与括号一样有最高的优先级。如果一个结构体内又嵌套了一个结构体类型,则访问一个成 员时,应采取从外到内、逐级访问的方法,直达要访问的成 员为止。 例如: employee. age = 18; gets(employee. name);四川信息职业技术学院·《C语言》

第一节

结构体变量

【例9-1】分析以下代码及输出结果。

源代码: /* 例9-1,9-1.c */ #include <stdio.h> #include <string.h> struct curriculum { char curname[30] ; float curgrade; };

struct student{ char name[8] ; char stuid[10] ; char department[30] ; char semester[10]; struct curriculum course; } stu1 = { "lihong", "200133420", "computerdepartment", "200609", "Clanguage", 87 }; /* stu1为全局变量,并在定义stu1时 初始化成员 */

四川信息职业技术学院·《C语言》

第一节

结构体变量

void main( ) { struct student stu2; printf(“Enter stu2’s information: \n”); gets(); /* 从键盘输入数据初始化stu2 */ gets(stu2.stuid); gets(stu2.department); gets(stu2.semester); gets(stu2.course.curname); scanf("%f",&stu2.course.curgrade); printf(“the sut1’s information is : \n”); printf(" %s %s %s %s %s %f\n", , stu1.stuid,stu1.department,stu1.semester, stu1.course.curname,stu1.course.curgrade); printf(“the sut2’s information is

: \n”); printf(" %s %s %s %s %s %f\n", , stu2.stuid, stu2.department, stu2.semester, stu2.course.curname, stu2.course.curgrade); }四川信息职业技术学院·《C语言》

第一节运行输出:

结构体变量

liuliting 20060205 electronComputer 200703 English 76 lihong 200133420 computerdepartment 200609 Clanguage 87.000000 liuliting 20060205 electronComputer 200703 English 76.000000

四川信息职业技术学院·《C语言》

第一节

结构体变量

【思考验证】 结构体类型、结构变量类型、结构体成员类型三者之间有无联系? 【融会贯通】 1.把你自己的信息定义一个嵌套的结构体类型informat,包括 姓名、性别、生日、籍贯、家庭住址、联系方式等;其中,生日是 结构体类型,包括:出生年、月、日;然后定义一个此类型的变量 my_info,初始化,并输出之。 2.定义一个英语单词的结构体类型,包括单词、词性、汉语解 释、短语等内容,然后用它定义单词compter,初始化。

四川信息职业技术学院·《C语言》

第一节

结构体变量

二、 结 …… 此处隐藏:2559字,全部文档内容请下载后查看。喜欢就下载吧 ……

第9章 结构体与枚举类型.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/109317.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)