C语言程序设计__第7章[精].pptVIP

  1. 1、本文档共93页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计__第7章[精]

7.5 自定义类型 7.5.1 自定义类型( typedef)   除了可以直接使用C提供的标准类型名(如int、char、float、double、long等)和前面介绍的结构类型、共用类型、指针、枚举类型外,C语言允许由用户自己定义类型说明符,也就是说允许用户为数据类型取“别名”。这一功能要求用类型定义符typedef来完成。         返回目录 7.5 自定义类型 7.5.1 自定义类型( typedef)   例如,整型变量说明符int取自单词integer的前三个字母,为了增加程序的可读性,可把整型说明符用typedef定义为: typedef int INTEGER; 以后就可用INTEGER来代替int作整型变量的类型说明。 同样地,也可以用语句: typedef float REAL; 来使REAL代替float作为实型变量的类型说明。经过用typedef说明后,语句 INTEGER a,b;就等效于语句int a,b; 而语句 REAL x,y等效于语句float x,y;。 7.5 自定义类型 7.5.1 自定义类型( typedef)   typedef定义的一般形式为: typedef 原类型名 新类型名; 其中原类型名中含有定义部分,新类型名一般用大写表示,以便于区别。具体说来,定义一个新的类型名的方法是: (1) 先按定义变量的方法写出定义体(如int i;); (2) 将变量名换成新类型名(如将i换成COUNT); (3) 在最前面加typedef(如typedef int COUNT); (4) 然后可以用新类型定义变量(如COUNT X)。 7.5 自定义类型 7.5.1 自定义类型( typedef)   另外,用typedef定义数组、指针、结构等类型将带来很大的方便,不仅使程序书写简单,而且使意义更为明确,因而增强了可读性。 例如: typedef int NUM[100]; /*定义NUM为整型数组,该数组元素有100个*/ NUM a, b, c;     /*定义了三个数组元素达100的整型数组*/ typedef char *STRING; /*定义STRING为字符指针类型*/ STRING p,s[10];    /*p为字符指针变量,s为指针数组 */ typedef int (*POINTER)( )/*定义POINTER为指向函数的指针类型,函数返回整型值*/ POINTER p1,p2;   /* p1和p2为指向函数的指针变量 */ 7.5 自定义类型 7.5.1 自定义类型( typedef)   又例如语句: typedef struct { int month; int day; int year; }DATE; 定义了一个新类型名DATE,它代表所定义的一个结构类型。这时就可以用DATE定义变量: DATE birthday;    /*birthday是结构变量,注意不要写成struct DATE birthday;*/ DATE *p;       /*p为指向此结构类型数据的指针*/ 7.5 自定义类型 7.5.1 自定义类型( typedef)   类型定义符typedef的几点说明: (1) 用typedef可以定义各种类型名,但不能用来定义变量。 (2) 用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。 (3) typedef与#define有相似之处,如:typedef int COUNT;和#define COUNT int 的作用都是用COUNT代表int。但事实上,它们两者是不同的。#define是在预编译时处理的,它只能作简单的字符串替换,而typedef是在编译时处理的。实际上它并不是作简单的字符串替换,例如: typedef int NUM[10]; 并不是用NUM[10]去代替int,而是采用如同定义变量的方法那样来定义一个类型。当用typedef定义一些数据类型(尤其是象数组、指针、结构、共用类型等类型数据)时,可把它们单独放在一个文件中,然后在需要用到它们的文件中用#include命令把它们包含进来。 7.1 结构类型 7.1.5  用指针处理链表   其中next是指针类型的成员名,它指向struct stu类型数据(即next所在的结构类型数据)。构成的链表结构如图7.8所示。该链表中每一个结点都属于struct stu类型,其成员next存放下一结点的地址。 1.链表概述 7.1 结构类型 7.1.5  用指针处理链表   2.建立与输出链表 在定义结构类型时,系统并未实际分配存储空间。为能让链表在需要

文档评论(0)

dart002 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档