typedef int ElemType; struct LNode {ElemType data; LNode *next;}; 这里struct LNode怎么解释
struct LNode就是定义一个结构体的意思,结构体就是一种数据存储单元,里面可以自由设定可以存储的内容形式,如int型,char型等等。这段代码应该是关于一个链表,链表的每个单元都是结构体。
LNode *next就是构造了一个结构体指针,这个指针可以指向这种结构体,即LNode类型的结构体,指针是指向数据存放空间的地址,而结构体就相当于一种数据,所以指针当然可以指向这种数据所在地址
#include
struct node
{
int data;
struct node *next;
};
struct node lnode;
int main()
{
printf("struct node size = %d\n",sizeof(struct node));
printf("node size = %d\n",sizeof(node));
printf("lnode size = %d\n",sizeof(lnode));
return 0;
}
输出:
struct node size = 8
node size = 8
lnode size = 8
Press any key to continue
这是VC++ 6.0的编译结果
--------------------------------------
在gcc里面,编译失败:sizeof(node);是不允许的,必须是sizeof(struct node)。
删除这一行之后运行结果:
struct node size = 8
lnode size = 8
是一样的。
--------------------------------------
在Turbo C里面,也是编译失败,原因同上:
错误 noname.c 14: 未定义的符号'node'在 main 函数中
删除这一行之后运行结果:
struct node size = 4
lnode size = 4
也是一样的。
-----------------------------------------------------
应该是一样的才对。
楼主把你的程序和编译器版本发出来看看。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!