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

求大神,关于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条回答 默认 最新

  • 内核之道 PostgreSQL领域优质创作者 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。

    评论
  • 内核之道 PostgreSQL领域优质创作者 2017-04-24 10:52
    关注
     如果函数参数不是一个二级指针,那么函数得不是返回状态值,而是返回一个地址,即为分配好的链表得地址;
    
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 cuda.jit加速报错
  • ¥15 Octave 安装工具箱出错 Only Win32 target is supported!
  • ¥15 Unity Animation Rigging使用问题
  • ¥15 mbedtls握手返回-7200
  • ¥30 c++ http服务器
  • ¥15 express连接mssql,每条额外附加了语句
  • ¥20 IQOO12如何有效ADB方法
  • ¥15 ios如何获取用户的订阅情况
  • ¥15 复杂表达式求值程序里的函数优先级问题
  • ¥15 求密码学的客成社记ji着用