C++ struct的一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 09:43:18
typedef struct LNode
{
int data;
struct LNode *next;
}*LinkNode,LNode;

我想知道的是{}后面*LinkNode 和LNode的作用分别是什么?它们有什么区别..麻烦讲详细点,谢谢

重新定义的类型

分解开就是:
struct LNode
{
int data;
struct LNode *next;
};

typedef struct LNode *LinkNode;
typedef struct LNode LNode;

以后就不用
struct LNode *p;了
可以
LNode *p;
或者
LinkNode p;

他们是等效的

首先给你说说typedef 的作用

用typedef声明一个新的类型名来代替已有的类型名。如
tpyedef int INTEGER; //指定标识符INTEGER代表int
typedef float REAL; //指定用REAL代表float类型
这样,以下两行等价:
1.int i,j; float a,b;
2.INTEGER i,j;REAL a,b;

也可以声明结构体类型:
typedef struct { //注意在struct之前用了关键字typedef,表示是声明新名
int month;
int day;
int year;
} DATE; //注意DATE是新类型名,而不是结构体变量名

所声明的新类型名DATE代表上面指定的一个结构体类型。这样就可以用DATE定义变量:
DATE birthday;
DATE *p; //p为指向此结构体类型数据的指针。

还有
typedef char* STRING ;//声明STRING为字符指针类型
则STRING p;
等效于 char *p;

则你的问题中:
typedef struct LNode
{
int data;
struct LNode *next;
}*Li