- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计课件第8章节
本章的主要内容包括:
?C语言的类型定义
?结构
?联合
?位运算和位段;写程序时自己定义的数据类型称作“用户定义类型”。
形式: typedef 类型名 标识符;
typedef的作用仅仅是用新类型名来代表已存在的类型名,并未产生新的数据类型。原有的类型名依然有效。
新的类型名可以和C语言中原有的各种基本类名一样,方便地用于定义变量、定义函数的返回值、定义其它构造类型的元素或成员。
例8.1:typedef int INTEGER;
给int类型一个新的名字INTEGER,此后,可以用INTEGER来定义整型变量。如:INTEGER i,j,a[10];
例8.2:typedef char * CHARP;
新类型名CHARP是字符指针类型,表示的旧类型是char *。
CHARP p; 等价于: char *p;
例8.3:typedef double VECT[4];
定义一种具有4个元素的双精度数组类型VECT;程序中 VECT v1,v2;定义两个4个元素的双精度数组。;定义新类型的步骤:
(1) 首先按通常定义变量的方法写出定义的主体;如:
double *f;
(2) 将变量名换成新类型名;
double *PDOUBLE;
(3) 在最前面加上关键字typedef;
typedef double *PDOUBLE;
(4) 可以用新类型定义变量了;
PDOUBLE f1,f2;
讨论自定义数据类型的作用;结构可以将若干个不同类型的数据组合成一个复合数据对象。组成结构的数据项称结构的成分或成员。
结构类型成员的数量必须固定,但该结构中各个成员的类型可以不同。
8.2.1 结构类型说明、结构变量定义
8.2.1.1 结构类型说明
struct 结构名 {成员说明序列};
结构名是结构类型说明的标志,如果所定义的结构类型,在程序中很少使用,可以省略结构名,在说明类型的同时定义结构变量;如果所定义的结构类型,在程序中要多次使用,应该使用结构名说明结构类型,以后在程序需要该结构类型的地方,用“struct 结构名”的形式代表整个说明。相当于一个类型名。 ;例日期可以用包含三个成员的结构来描述:
struct date
{ int year, month, day; };
学生信息的结构类型可说明如下:
struct student
{ char name[15];
char sex;
struct date birthday;
float score[4];
};
其中struct date是一个已说明过的结构类型名。 ;8.2.1.2结构变量定义
结构变量定义有4种方法:
(1) 直接定义结构类型变量,将一个结构说明当成类型描述,在它后面列出变量标识符。这种表示方法没有结构名,定义形式如下:
struct {成员说明序列} 结构变量表;
例:struct
{ char name[10];
int age;
int class;
} stu1,stu2[5],*stu3;
;8.2.1.2结构变量定义
结构变量定义有4种方法:
(2) 声明类型同时,定义结构变量
struct 结构名 {成员说明序列} 结构变量表;
例:struct point {
double x, y, z;
} p1,p2,*p3;
说明结构类型point, 并定义三个变量。 ;8.2.1.2结构变量定义
结构变量定义有4种方法:
(3) 使用已声明的结构类型,定义结构变量
struct 结构类型名 结构变量表;
例:使用上面的例子中说明的struct point。
struct point p1,p2[5],*p3;
(4) 定义结构类型,再定义结构变量
typedef struct {成员说明序列} 结构类型名;
结构类型名 结构变量表; ;8.2.1.3结构的实现
C语言为结构对象分配足够大的存储空间,顺序地放入各个成员,但具体的存储位置,由一组对齐规则来调整,结构里的成员未必一个紧接着一个存放,它们之间可能有空位。
结构类型和结构变量的空间计算:sizeof
讨论结构存储中使用对齐原则的原因;8.2.2 结构变量的初始化和使用
8.2.2.1 结构变量的初始化
可以在定义的同时初始化,使用{}将变量的成员的初始化值组合起来 。
如 struct point {
double x,y;
} p1={1.5,4,6},p[3]={{1.5,2.5
您可能关注的文档
最近下载
- 剑桥英语PET真题标准版二.docx VIP
- 大学生国情社会调查报告.docx VIP
- 2025中国移动通信集团重庆有限公司社会招聘笔试备考题库及答案解析.docx VIP
- 山东科学技术版劳动实践指导手册一年级第2课清洁与卫生干干净净真舒服刷牙 教案.pdf VIP
- 人教版劳动一年级上册项目一《洗手》(教案).docx VIP
- 《南京照相馆》电影介绍ppt课件(优质ppt).pptx VIP
- 病人发生滑倒.pptx VIP
- 部编版语文三年级上册习作:写日记练习卷.doc VIP
- 部编版语文三年级上册第二单元 习作:写日记练习卷.doc VIP
- 2025广东东莞农村商业银行校园招聘笔试历年典型考题及考点剖析附带答案详解.docx
文档评论(0)