下面的程序中数组的下标是不是越界了 。。。???(李春保的数据结构) 在线等高手讲 。。
#define MaxSize 50
typedef struct
{ ElemType data[MaxSize]; /*存放顺序表元素*/
int length; /*存放顺序表的长度*/
} SqList; /*顺序表的类型定义*/
int ListInsert(SqList *&L, int i, ElemType e) /*插入数据元素的函数*/
{
int j;
if (i<1 || i > L->length+1)
return 0; /*参数错误,返回0*/
i--; /*将顺序表逻辑位序转化为物理位序*/
for (j = L->length; j>i; j--) /*将data[i]及后面元素后移一个位置*/
L->data[j] = L->data[j-1];
L->data[i] = e; /*插入元素e*/
L->length++; /*顺序表长度增1*/
return 1;
}
其中for循环下面的那句:L->data[j] = L->data[j-1]; 数组下标越界了吧,data[j]的值不是不允许访问的吗?
再问个问题:在函数的形参列表中,SqList *&L 是什么意思?对指针的引用?