关于结构的一个小问题

flybird66 2003-03-06 10:20:16
typedef int elemtype;
typedef struct linknode
{
elemtype data;
struct linknode *next;
}nodetype;

typedef struct linknode中的linknode是什么意思?
这个结构是不是应该是nodetype的?如果这样的话,linknode做什么用的?
...全文
20 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wshcdr 2003-03-06
  • 打赏
  • 举报
回复
gz
yaven365 2003-03-06
  • 打赏
  • 举报
回复
linknode 代表关键字,就像int,double一样

notetype就是代表一个历程
alan118 2003-03-06
  • 打赏
  • 举报
回复
stuct linknode* next声明了一个指向另一个linknode类型的指针。(在链表的定义中很常用)

你无法在struct中如下声明常量 struct linknode next;产生编译期错误。因为编译器无法判断这个类型的空间多大,也就无法为此分配空间。


你只能在一个struct中声明与这个struct同类型的指针,编译器可以为这个指针分配空间。
polochen 2003-03-06
  • 打赏
  • 举报
回复
同意楼上。

如果你能够懂typedef和struct linknode的定义,那么上面的一整段可以分解为如下。
typedef struct linknode
{
elemtype data;
struct linknode *next;
}nodetype;


等价于:
typedef struct linknode
{
elemtype data;
struct linknode *next;
};
typedef struct linknode nodetype (或者是#define nodetype struct linknode)

就是说以后可以用nodetype来替代struct linknode
JoshuaLi 2003-03-06
  • 打赏
  • 举报
回复
typedef struct linknode中的linknode是什么意思?
这个结构是不是应该是nodetype的?如果这样的话,做什么用的?

linknode是类型名,linknode是别名。目前还没有为此类型分配空间
zhpsam109 2003-03-06
  • 打赏
  • 举报
回复
结构体是一种数据类型,struct是定义这种类型的关键字,linknode是类型名。
typedef int elemtype;这样声明是用elemtype代替int类型,如果有这个声明,那么你在后面可以用elemtype a;来代替int a;来声明整型变量a;同样的道理,如果有
typedef struct linknode
{
elemtype data;
struct linknode *next;
}nodetype;这样的声明,那么你可以在以后的程序中用nodetype a;代替struct linknode a;来声明结构体变量a。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧