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 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法