下载此文档

C语言中结构体究竟有什么好处-课件·PPT.ppt


文档分类:IT计算机 | 页数:约16页 举报非法文档有奖
1/16
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/16 下载此文档
文档列表 文档介绍
使用结构体究竟有什么好处?
2017/7/15
1
Structures
从基本数据类型、复合数据类型到抽象数据类型
计算机本身是没有数据类型的概念的
内存里存储的内容,你认为它代表什么,它就代表什么
高级语言设计了基本数据类型:整型、浮点型、字符型等。不同的语言也会定义不同的基本类型
基本数据类型并不能方便地解决所有问题
复合数据类型是基本数据类型迭代派生而来
典型的代表就是“结构”,数组、指针也可算作此类
抽象数据类型(ADT)在复合数据类型的基础上增加了对数据的操作
抽象数据类型进而进化为“类”
这是一个跨时代的进步
一个问题
在程序里表示一个人(姓名、年龄、性别、身高、体重……),怎么表示?
char name[12]; unsigned int age; char sex;
想表示多个人呢?
定义多个数组?(有些搞笑了)
C语言的解决办法
struct person { char name[12]; unsigned int age; char sex; };
struct person是一个类型
struct person students[4];
students[0].name students[0].age students[0].sex
它们都是变量,一般称为结构的成员变量
结构(Structure)的内存占用
一个结构变量的成员变量在内存中是相邻的
整个结构变量的将占用多少内存呢?
是所有成员变量的内存总和吗?
我们可以用sizeof来获得结构的大小
事实上,结构所占的实际空间一般是按照机器字长对齐的
不同的编译器、不同的平台,对齐方式会有变化,不过一般的编译器都可以设定按照多大对齐
sizeof到底是什么?
它是一个C语言的关键字,并不是函数
可以用两种形式使用
sizeof(表达式)
一般都使用sizeof(变量名)
sizeof(类型)
求出的结果为表达式值所属类型或者类型占用的字节数
struct类型的特点
一个普通的类型
所以可以定义该类型的变量、数组、指针……
它的成员可以是任意类型
基本类型、数组、指针、结构……
可以做函数的参数类型和返回值类型
struct类型的变量
可以互相赋值
所以做为函数的参数时,是传值调用
可以&
不可能参与运算
它的成员个个也都是如假包换的变量
面向对象和数据库是struct的思想的发展
结构指针
struct point { int x; int y; };
struct point pt; struct point* ppt;
ppt = &pt;
怎样通过ppt访问pt的成员?
(*ppt).x = 0;
ppt->x = 0; /* 更常用*/
思考题
struct point { int x; int y; }; struct rect { struct point pt1; struct point pt2; };
struct rect rt, *rp=&rt;
下面表达式哪些合法?

(*rp).
rp->
rt->
上面合法的表达式都是等价的吗?
再思考
下面的结构什么意思?
struct something { struct something obj1; struct something obj2; }
下面的的呢?
struct something { char name[10]; struct something* pOtherObj; }

C语言中结构体究竟有什么好处-课件·PPT 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数16
  • 收藏数0 收藏
  • 顶次数0
  • 上传人aidoc1
  • 文件大小0 KB
  • 时间2015-10-20
最近更新