为了账号安全,请及时绑定邮箱和手机立即绑定

c++的引用不知道为什么会报错?求指教!

c++的引用不知道为什么会报错?求指教!

C++
mrs_empress 2017-03-18 18:01:38
#include <iostream> #include <cstdio> using namespace std; typedef int ElemType; typedef int Status; const int n=5; struct Node{     ElemType data;     struct Node *next; }Node,*LinkList; void print_title(); void CreateList(LinkList &L,int n); Status ListDelete_first(LinkList &L); Status ListTraverse(LinkList &L); int main(){     int x;     ElemType e;     LinkList L;     CreateList(L,n);     print_title();     scanf("%d",&x);     switch(x){             case 1:ListDelete_first(L);break;             case 2:ListTraverse(L);break;             default:;     }     return 0; } void print_title(){     cout<<"Delete a number in the first,input 1;"<<endl;     cout<<"See all numbers,input 2;"<<endl;     cout<<"Quit,input any other characters."<<endl; } void CreateList(LinkList &L,int n){     LinkList p;     L=(LinkList)malloc(sizeof(Node));     L->next=NULL;     for(i=n;i>0;--i){         p=(LinkList)malloc(sizeof(Node));         cin>>p->data;         p->next=L->next;         L->next=p;     } } Status  ListDelete_first(LinkList &L){     LinkList p;     p=L->next;     if(!p)return false;     p=p->next;     L->next=L->next->next;     free(p);     p=NULL;     return true; } Status  ListTraverse(LinkList &L){     LinkList p;     p=L->next;     if(!p){         cout<<"empty list!"<<endl;         return false;     }     while(p->next){         p=p->next;         cout<<p->data<<"\t";     }     cout<<endl;     return true; } //error: variable or field 'CreateList' declared void| //error: 'L' was not declared in this scope| //error: expected primary-expression before 'int'|
查看完整描述

3 回答

已采纳
?
朕日理万机

TA贡献27条经验 获得超28个赞

别的,部分没看,你目前的问题,LinkList(第10行),不是一个类型名,而是一个变量名,是一个指针类型指向了一个Node实例。而你在后面的代码中把它当成了一个类型名用。

查看完整回答
3 反对 回复 2017-03-18
?
锅里煮水

TA贡献4条经验 获得超0个赞

linklist本身是一个指针变量,L不能定义为Linklist类型的

查看完整回答
反对 回复 2017-03-19
?
SupperMary

TA贡献5条经验 获得超0个赞

编译报错在12行,手动去掉"LinkList &L"之后。

报错信息“error: variable or field 'CreateList' declared void|”没有了,应该是链表格式没写对(我还没有学过链表,不知道具体情况)

报错信息“error: 'L' was not declared in this scope|”也没有了


把“void CreateList(LinkList &L,int n);”改成“void CreateList(int n,LinkList &L);”之后,报错信息”error: expected primary-expression before 'int'|“也没有了,说明问题还是出在“LinkList &L”上,很有可能是函数格式不对。

查看完整回答
反对 回复 2017-03-18
  • 3 回答
  • 0 关注
  • 2397 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信