C语言程序设计电子课件——结构体和共用体.ppt

C语言程序设计电子课件——结构体和共用体.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
语言程序设计 第十一章 结构体和共用体 11.1结构体 11.2定义结构体变量的方法 11.3结构体变量的引用 11.4结构体成员的初始化 11.5结构体数组 11.6指向结构体类型数据的指针 第十一章 结构体和共用体 第一节 结构体 前面学过的变量都只能定义单一的数据类型,如字符型、整型、实型等等,但是对于复杂的数据,即包含有一个或者多个数据项,各数据项可以具有相同或者不同的类型,并且每个数据项的含义不同,以前的知识就不足了。 例如对于学生实体的描述,学生有姓名,学号,成绩,性别等等。我们要描述一个学生需要多个基本变量的组合(集成)。这种数据类型在Pascal语言中称为记录,在C语言中称为结构体。它们是数据库的雏形。 num Name sex age score address 10010 Li Fun M 18 87.5 Beijing 10011 Zhang San M 21 67 Fuzhou 10012 Li si F 22 88 Jinan 10013 Wang Hai M 20 72 Haikou 在上述的信息中,每一行代表一个人的信息,有学号、姓名、性别、年龄、成绩、地址等信息,以前学过的任何一种数据类型均不能表示,而分别表示又违背了信息的集成原则,用起来也不方便。数组的特征是每个元素都是同质(identical)的,不能表示不同的数据类型。因此,为了把这么多种基本数据类型集合在一起,发明了结构体。在Pascal语言中叫记录。 定义方式如下: struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; 上述并非定义一个变量,或者一个存储空间,而是定义了一个新的结构体类型 struct student(它的地位等同于int char 等数据类型描述)。 事实上,定义一个结构体类型的一般形式为: struct 结构体名 { 成员类型 成员名1; 成员类型 成员名2; ………….. } ; 括号内是成员变量,或者称为分量,由它们集成在一起组成一个结构体。在上例中,num,name,sex,age,score,addr都是分量。 定义格式举例 【例1】定义格式举例 struct A /*A叫结构体类型名*/ {int a,b,c;}; /*有三个整型号变量成员*/ 【例2】 struct B { char ch; int x,y; }; 定义格式举例 【例3】 struct C { char *cp; int a[5]; }; /*两个成员变量*/ 【例4】 struct D { int *a; int *ap; int maxsize; }; 定义格式举例 【例5】 struct B { char ch; int x,y; double z; /*五个成员变量*/ }; struct E { int d,*e; B b; }; 【注意】结构体类型变量所占内存空间的大小又其成员变量所占内存空间之和+1即可。 可用sizeof()来求结构体类型变量的空间大小 【例6】 #include "stdio.h" struct date { long *cat; struct date *next; double dog; }too; void main() { printf("%d",sizeof(too)); } 第二节 定义结构体变量的方法 一、先定义结构体类型名再定义变量名 象定义普通变量一样定义结构体类型变量。 定义标准型变量 定义结构体类型变量 int a; char b; float c; struct student student1; 二、在定义类型的同时定义变量 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }student1; 三、直接定义结构体类型变量、结构体名放弃即可。 struct { int num; char name[20]; char sex; int age; float score; char addr[30]; }student1; 【注意】 1.结构体类型名和结构体变量名不要混淆 就像int x; 这两

您可能关注的文档

文档评论(0)

金诺 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档