总结一下,C语言没有引用,严老师要是坚持按照C的语法来写,就会在很多算法里面出现很多星星,对于连一个星都搞不清楚的学生们来说实在太辛苦了,其实大家也都很清楚星星的个数和理解程序的难度是非线性的关系,所以,把C++的引用搬过来了。如果你用C++来写这些完全不用考虑,如果你用C来写Status ListInsert_Sq(SqList &L, int i, Elemtype e){
....
}
实际实现的时候就要这样:
Status ListInsert_Sq(SqList* pL, int i, Elemtype e)
{
pL->....
}
调用的时候这样ListInsert_Sq(&L,i,e)
如果再不明白我没办法了。
最后一句话,直接拿C++写算了,就不用在这上面纠缠了。
Status ListInsert_Sq(SqList &L, int i, Elemtype e)
//引用。函数中参数使用方法:L.Length
而:
Status ListInsert_Sq(SqList *L, int i, Elemtype e)
//指针。函数中参数使用方法:(*L).Length 或L->Length
----------------------------------------------------
比如算法2.4,在顺序线性表L中第i个位置之前插入新的元素e
Status ListInsert_Sq(SqList &L, int i, Elemtype e){
....
}
其中,SqList &L的L是指针还是一个引用呢?