1、问题复现
typedef struct LNode{
Book book;
struct LNode *next;
}LNode,*LinkList;
LinkList CreatList(LinkList &L)
{
L = (LinkList)malloc(sizeof(LNode));
LinkList p=L;
...
}
void PrintList(LinkList &L)
{
LinkList q=L;
...
}
int main()
{
LinkList L;
CreatList(L);
PrintList(L);
return 0;
}
函数调用时报错:[Error] expected ';', ',' or ')' before '&' token
2、原因分析:C语言中&符号表示取地址,并非引用
3、解决方式
- 文件另存为.cpp类型,重新编译即可
- 函数定义时使用指针,函数调用时传入地址
typedef struct LNode{
Book book;
struct LNode *next;
}LNode,*LinkList;
LinkList CreatList(LinkList *L)
{
LinkList head = (LinkList)malloc(sizeof(LNode));
head->next == NULL;
*L = head;
LinkList p = *L;
...
}
void PrintList(LinkList *L)
{
LinkList q = *L;
...
}
int main()
{
LinkList L;
CreatList(&L);
PrintList(&L);
return 0;
}