qq_37296877
2017-04-24 10:01
采纳率: 61%
浏览 836
已采纳

求大神,关于C语言的问题

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才对

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 君子黎 2017-04-24 10:46
    已采纳
     typedef struct Node *LinkList; 此时LinkList为struct Node*类型;现在就可以用LinkList来定义类型;Status InitList(LinkList *L)中形参没有错;
     L是一个二级指针,为指向指针得指针;调用该函数得实参为一个一级指针,然后把该实参指针得地址给传递进来,就这样间接得赋值;
    
    
    点赞 打赏 评论
  • qqliyunpeng 2017-04-24 10:47

    你这个程序问题多多呀,至于你说的问题,要想把L 的内容回传到函数外,必须要用指针的指针,即struct Node **L。

    点赞 打赏 评论
  • 君子黎 2017-04-24 10:52
     如果函数参数不是一个二级指针,那么函数得不是返回状态值,而是返回一个地址,即为分配好的链表得地址;
    
    点赞 打赏 评论

相关推荐 更多相似问题