c语言g程序设计7,C语言程序设计7章.ppt

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值