C语言菜鸟问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 09:07:20
typedef struct Node /*结点类型定义*/
{
ElemType data;
struct Node * next;
}Node,*LinkList;

请问最后定义的NODE和*LINKLIST有什么区别??
能否详细解释一下。

Node是结构体类型,*LinkList是指针类型

myleti的错误在于*LINKLIST不是“变量”,而是“类型”;并且这样定义不会冲突。

carloshs的错误在于使用了“对象”这个术语,而它是面向对象程序设计中的术语,在C中没有这个概念,应该称为“结构体”。

*LINKLIST是指向Node的指针变量,只有4字节。而Node不行,与类型名冲突了。你可以类型名用全大写。

typedef struct Node /*结点类型定义*/
{
ElemType data;
struct Node * next;
}Node,*LinkList;
没问题。都是可以用来定义的。只是一个是指向对象的指针一个是对象

typedef关键字是为一个类型声明定义一个别名。typedef struct Node *LinkList 意思就是以后在声明变量时候struct Node *pNode的声明都可以表示为LinkList pNode;这样可以很简单的定义一个变量而且如果你typedef后的名称带有一定的规则例如typedef Node *PNODE;那其他程序员看了你的声明
PNODE pNode就很快知道了pNode是一个Node变量的指针了

谁教我入门