zisenmj 2019-11-16 23:57 采纳率: 33.3%
浏览 681

这几段代码我有点理解不了(数据结构c语言),求大神给我讲解一下。

在自学数据结构时遇到了困难,来求助大家了。

#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;
}

谢谢

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-11-17 08:54
    关注
    Book  *elem; 这个是Book(的数组)的指针,之所以用指针,因为这里动态根据length分配长度,所以不能用静态的数组写死长度。
    Status  InitList(SqList  &L) 这里的&是C++的引用,不是取地址符。因为函数内修改L,要返回主程序,所以这里需要引用。
    L.elem=new ElemType[MAXSIZE];,让L.elem这个指针指向动态分配的数组(长度是MAXSIZE)
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog