cannot convert from 'struct LNode *' to 'int'
#include<stdio.h>typedefstructLNode{intdata;structLNodenext;//此处必须用指针么?}Node,*LinkLis...
#include <stdio.h>
typedef struct LNode{
int data;
struct LNode next;//此处必须用指针么?
}Node,*LinkList;
void main()
{
Node *p=NULL,*q=NULL;
p->next=q;//为什么是 'struct LNode *' to 'int'的错误,望详细些
} 展开
typedef struct LNode{
int data;
struct LNode next;//此处必须用指针么?
}Node,*LinkList;
void main()
{
Node *p=NULL,*q=NULL;
p->next=q;//为什么是 'struct LNode *' to 'int'的错误,望详细些
} 展开
3个回答
展开全部
对,必须用指针,指向它的下一个节点的地址
追问
详细些啊
追答
链表就是节点依靠下一个节点的地址,把所有节点连接起来,这种链表比较适合插入和删除。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在定义 LNode 结构时,其中的成员 next 又是 LNode 结构,也就是说,这是一个无穷递归的过程,LNode 的结构就是无穷大了。
如果把 struct LNode next; 写成 struct LNode* next;就不再递归定义了。
而 p->next=q;这个也不对,因为 Node *p=NULL 说明 p 是一个空指针,根本就不存在 p->next。
按以下改写可以成立:
#include <stdio.h>
typedef struct LNode
{
int data;
struct LNode* next;//此处必须用指针
}Node,*LinkList;
void main()
{
Node* p=(Node*)malloc(sizeof(Node));
Node* q=NULL;
p->next=q;
}
如果把 struct LNode next; 写成 struct LNode* next;就不再递归定义了。
而 p->next=q;这个也不对,因为 Node *p=NULL 说明 p 是一个空指针,根本就不存在 p->next。
按以下改写可以成立:
#include <stdio.h>
typedef struct LNode
{
int data;
struct LNode* next;//此处必须用指针
}Node,*LinkList;
void main()
{
Node* p=(Node*)malloc(sizeof(Node));
Node* q=NULL;
p->next=q;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询