typedef 用法中出现的疑惑

来源:百度知道 编辑:UC知道 时间:2024/05/21 22:38:05
这是一道链式存储的相关编程题,下面是我程序的一部分
typedef struct LNode
{ int data;
struct LNode *next;
}LNode,*LinkList;

我明白:LNode和LinkList都是给LNode起的新名字,但是我不懂,*LinkList到底表示什么东西。

楼上的真是胡扯。

typedef struct LNode
{ int data;
struct LNode *next;
}LNode,*LinkList;

上面的意义可以这样来解释,你可以把上面的声明分解开来看。

struct LNode
{ int data;
struct LNode *next;
};

typedef struct LNode LNode;

typedef struct LNode* LinkList;

LinkList 即表示 struct LNode*; 以后要申明一个 struct LNode* 变量,就可以直接使用 LinkList ,即LinkList是一个数据类型,和struct LNode*是等价的。如 LinkList nodeList; (表面上是一个实例,其实是个指针,实质是 struct LNode* nodeList)

typedef 的同时,附带 声明了一个指针 *LinkList
相当于另写了一行声明:

LNode *LinkList;

指针