在自学数据结构时遇到了困难,来求助大家了。
#define MAXSIZE 10000
typedef struct
{
char no[20];
char name[50];
float price;
}Book;
typedef struct
{
Book *elem; //这个是定义了谁的指针?为什么这样定义?
int length;
}sqList
SqList L;
Status InitList(SqList &L)//形参是结构体是怎么传递的,为什么L前面还有取地址符&;
{
L.elem=new ElemType[MAXSIZE];//这句话是什么意思?
if(!L.elem) exit(OVERFLOW);
L.length=0;
return OK;
}
谢谢
Book *elem; 这个是Book(的数组)的指针,之所以用指针,因为这里动态根据length分配长度,所以不能用静态的数组写死长度。
Status InitList(SqList &L) 这里的&是C++的引用,不是取地址符。因为函数内修改L,要返回主程序,所以这里需要引用。
L.elem=new ElemType[MAXSIZE];,让L.elem这个指针指向动态分配的数组(长度是MAXSIZE)