不知道大家有没有这个疑问
程序代码:
typedef struct { ElemType *elem; int length; //当前长度 int list_size;//线性表的长度 }sqlist; int InitList(sqlist *L)//这里是用的声明指针的方法,下面的用指针来处理 { L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L.elem) { return 0; } L->length=0; L->list_size=LIST_INIT_SIZE; return 1; }//初始化
typedef int ElemType;
typedef struct
{
ElemType *elem;
int length; //当前长度
int list_size;//线性表的长度
}sqlist;
int InitList(sqlist &L)//这里用的地址符号,把它当做变量来处理。
{
L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem)
{
return 0;
}
L.length=0;
L.list_size=LIST_INIT_SIZE;
return 1;
}//初始化
我的问题:sqlist &L; sqlist *L; 感觉应该是一样的,如果把L声明成变量的话直接用 sqlist L 不好么,为什么还要加个地址符呢? 数据结构中总是在这里犯晕,各位有没有谁能详细的解释下啊