//定义头文件
#include<stdio.h>
#include<malloc.h>
//定义元素类型
typedef char ElemType;
//定义单链表结点类型
typedef struct LNode
{
ElemType data;
struct LNode*next;
}LinkNode;
//按元素值查找
int LocateElem(LinkNode*L,ElemType &e)
{
int i=1;
//p指向首结点,i置为1(即首结点的序号为1)
LinkNode*p=L->next;
//查找data值为e的结点,其序号为i
while(p!=NULL&&p->data!=e)
{
p=p->next;
i++;
}
if(p==NULL)
//不存在值为e的结点,返回0
return(0);
//存在值为e的结点,返回其逻辑序号i
else
return(i);
}
int mian()
{
ElemType e;
LinkNode *L;
LocateElem(L,'j');
}
######提示出错语:error: cannot bind non-const lvalue reference of type 'ElemType&' {aka 'char&'} to an rvalue of type 'char'|
修改处见注释,若要实现函数的功能,得先建立链表,供参考:
//定义头文件
#include<stdio.h>
#include<malloc.h>
//定义元素类型
typedef char ElemType;
//定义单链表结点类型
typedef struct LNode
{
ElemType data;
struct LNode*next;
}LinkNode;
//按元素值查找
int LocateElem(LinkNode*L,ElemType e) //ElemType &e) 修改
{
int i=1;
if (L == NULL || L->next == NULL) return -1;//修改
LinkNode*p=L->next;//p指向首结点,i置为1(即首结点的序号为1)
while(p!=NULL&&p->data!=e)//查找data值为e的结点,其序号为i
{
p=p->next;
i++;
}
if(p==NULL)
return(0);//不存在值为e的结点,返回0
else
return(i);//存在值为e的结点,返回其逻辑序号i
}
int main() // mian() 修改
{
ElemType e;
int i; //修改
LinkNode *L = NULL; //修改
i = LocateElem(L,'j'); //修改
return 0;
}
那个Locate函数里面不能&e这样写吧
根本编译都没编译成功,main函数不是mian
LocateElem(L,'j');
这里不是传引用