c++中,再将链表头指针赋给一个临时指针时报错

发布于 2022-09-01 05:46:25 字数 1047 浏览 16 评论 0

#include<iostream>
using namespace std;
class Linklist
{
public:
    struct node                     //声明链表结点的结构体
    {
        int a;
        struct node *next;
    };                                   
    struct node*head;
    void addnode();     //添加结点
    Linklist(void);
    ~Linklist(void);
};

Linklist::Linklist(void)
{
    head=NULL;
}


Linklist::~Linklist(void)
{
}

void Linklist::addnode()        //添加结点的函数实现                   
{
    struct node *temp=new struct node [1];
    if(head==NULL)
    {
        head=temp;
        head->next=NULL;
    }
    else
    {
        temp->next=head;
        head=temp;
    }
}                                                                         


int main()
{
    Linklist a;
    struct node *temp=NULL;            //申请一个struct node类型的指针
    a.addnode();                       //创建一个结点
    temp=a.head;                   //将头指针赋给一个临时的指针,这时候就报错了
    system("pause");
    return 0;
}

在倒数第四行,“temp=a.head”处报错,说“不能讲Linklist::node类型的值分配到node类型的实体”

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

掌心的温暖 2022-09-08 05:46:25
cppstruct Linklist::node *temp=NULL;

node是在Linklist内部声明的

久随 2022-09-08 05:46:25

struct node *temp=NULL;中的node是一个为空的构造体,跟Linklist中的node不是同一个.它等价于:

struct node
{
....
}
node *temp = NULL;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文