typedef struct Node
{
ElemType data;
struct Node next;
}Node;
typedef struct Node *LinkList; / 定义LinkList */
/* 初始化顺序线性表 /
Status InitList(LinkList *L)
{
*L=(LinkList)malloc(sizeof(Node)); / 产生头结点,并使L指向此头结点 /
if(!(*L)) / 存储分配失败 /
return ERROR;
(*L)->next=NULL; / 指针域为空 */
return OK;
}
typedef 将struct Node * 替换成了 LinkList
那么形参那地方应该是指向结构体的指针变量
不是应该写成LinkList L吗 怎么写的是*L才对
typedef struct Node *LinkList; 此时LinkList为struct Node*类型;现在就可以用LinkList来定义类型;Status InitList(LinkList *L)中形参没有错;
L是一个二级指针,为指向指针得指针;调用该函数得实参为一个一级指针,然后把该实参指针得地址给传递进来,就这样间接得赋值;
你这个程序问题多多呀,至于你说的问题,要想把L 的内容回传到函数外,必须要用指针的指针,即struct Node **L。
如果函数参数不是一个二级指针,那么函数得不是返回状态值,而是返回一个地址,即为分配好的链表得地址;