C语言菜鸟问题
来源:百度知道 编辑:UC知道 时间:2024/05/21 09:07:20
typedef struct Node /*结点类型定义*/
{
ElemType data;
struct Node * next;
}Node,*LinkList;
请问最后定义的NODE和*LINKLIST有什么区别??
能否详细解释一下。
{
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变量的指针了
谁教我入门