|  | 
 
10鱼币 
| 我正在学习数据结构第十九讲在看源代码时有些不理解为什么要这要样定义?为什么不直接用 int 呢?代码如下(红色字体部分): 
 #include "stdio.h"
 
 #define OK 1
 #define ERROR 0
 #define TRUE 1
 #define FALSE 0
 
 typedef int Status;/* Status是函数的类型,其值是函数结果状态代码,如OK等 */
 typedef int ElemType;/* ElemType类型根据实际情况而定,这里假设为int */
 
 typedef struct Node
 {
 ElemType data;
 struct Node *next;
 }Node, *LinkList;
 
 /* 初始化带头结点的空链表 */
 Status InitList(LinkList *L)
 {
 *L = (LinkList)malloc(sizeof(Node)); /* 产生头结点,并使L指向此头结点 */
 
 if(!(*L)) /* 存储分配失败 */
 return ERROR;
 
 (*L)->next=NULL; /* 指针域为空 */
 
 return OK;
 }
 
 /* 初始条件:顺序线性表L已存在。操作结果:返回L中数据元素个数 */
 int ListLength(LinkList L)
 {
 int i=0;
 LinkList p=L->next; /* p指向第一个结点 */
 while(p)
 {
 i++;
 p=p->next;
 }
 return i;
 }
 
 /*  随机产生n个元素的值,建立带表头结点的单链线性表L(头插法) */
 void CreateListHead(LinkList *L, int n)
 {
 
 | 
 
最佳答案
查看完整内容 因为数据的类型以后有可能会发生变更,这只是个小程序还没什么,就几处地方,如果是大程序的话就有很多处,可能就要到处更改数据类型,而且可能漏改,给程序带来问题,如果用typedef的话,只需要改这一处可以了,便于管理 |