顺序表编译出错cannot convert parameter 1 from ✀SqList✀ to ✀SqList *✀

2025-04-25 15:13:29
推荐回答(3个)
回答1:

你是C语言还是C++语言啊?

SqList &l,a;
l=&a;
这里&是C++的引用,他要求定义的时候就赋值,就是定义的时候就要明确他是谁的引用。你这里至少也得:
SqList a,&l=a;
如果只是C语言的程序,则不能这种用法,你的使用指针来替换。
你的InitList_Sq等等这些函数都要使用指针,实际使用的时候需要:InitList_Sq(&l)这样就可以了。如果你的l定义成SqList *l;则InitList_Sq(l)。

感觉你是看的C++式的描述伪代码,若是在C语言中,得做些修改的。
你的那些报错,都是说类型转换不成立,需要指针的地方,你传的是值,其实需要一个指针地址。
在C语言里面,&可以是取地址操作符,也可以是逻辑与操作符,没有直接定义的时候放在变量前面的;在C++里面,倒是有作为引用的使用方法,但要求紧跟初始化变量。

回答2:

cannot convert parameter 1 from 'SqList' to 'SqList *& ' 你在往创建链表函数传递参数时写的是结点指针的引用。而你main函数里体用该函数时写的,vFplkz

回答3:

外星语