2 sanningjing sanningjing 于 2016.04.14 14:52 提问

C结构体定义问题 struct 求详解

typedef struct node
{
int data;
struct node* next;// 这个地方注意结构体变量的定义规则
} Node, *PNode;

struct node* next 这句看不懂啊,有没有大神帮忙详解一下。

1个回答

qq423399099
qq423399099   Ds   Rxr 2016.04.14 14:59
已采纳

这个一般是链表中定义一个结点用到的结构体
struct node* next的意思就是定义了一个指针叫next,这个next指针指向的元素的类型是struct node *
这个next指针一般是指向链表的下一个结点(如果已经是最后一个结点就为NULL)

qq_29931511
qq_29931511 因为你要实现链式的数据结构,,每个结点在内存中任意位置,,,为了方便从上一个结点找到下一个结点,,,所以定义一个指针,,,存储下一个结点的地址,,,
一年多之前 回复
sanningjing
sanningjing 回复低调的峰哥: struct node* next;1.这句话在定义的时候,struct node是指用了原型么?2.是调用了自己本身作定义么?
一年多之前 回复
z617490935
z617490935 typedef struct node Node, *PNode; struct node { int data; PNode next; }
一年多之前 回复
z617490935
z617490935 回复sanningjing: 没定义完成是不能使用的,因此要要使用结构的原型。如果想用的话,可以这样定义:
一年多之前 回复
qq423399099
qq423399099 回复sanningjing: 意义是一样的,有些C编译器不支持这样的node* next
一年多之前 回复
sanningjing
sanningjing 把struct node* next换成node* next可以么?两个有什么区别?
一年多之前 回复
qq423399099
qq423399099 回复sanningjing: 哈哈哈,是你的想法奇怪了
一年多之前 回复
sanningjing
sanningjing struct node* next 中的node ,是我刚自定义的node,我理解为还没有定义完成,就可以使用么?用法很奇怪,还是我的想法奇怪了?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!