霖纪年 2022-01-13 14:02 采纳率: 16.7%
浏览 21
已结题

顺序表静态分配问题求解

在学习数据结构中的顺序表分配时,有代码是下面这样的,但是不能运行,因为
InitList(SqList &L)这里会报错,那么SqList &L表示的是什么意思。

#include <stdio.h>
#define MaxSize 10      
typedef struct{
    int data[MaxSize];  //用静态的“数组”存放数据元素 ElemType:int
    int Length;         
}SqList;               
//基本操作——初始化一个顺序表
void InitList(SqList &L){
    for(int i=0; i<MaxSize; i++){
        L.data[i]=0;   
    }
    L.Length=0;        
}

int main(){
    SqList L;          
                       
    InitList(L);       //初始化这个顺序表
    //...
    return 0;
}

在C语言中,代码修改后就能运行

#include<stdio.h>
#define MaxSize 10  //定义最大长度
typedef struct{
    int data[MaxSize];//用静态数组存放数据元素
    int length;//顺序表的当前长度
}SqList;//顺序表类型定义

//基本操作初始化一个顺序表
void InitList(SqList *L){
    L->length=7;//顺序表初始长度为0
    L->data[3]=90;
}

int main(){
    SqList L;//声明一个顺序表
    InitList(&L);//初始化顺序表
    for(int i=0;i<L.length;i++)
    {
        printf("data[%d]=%d\n",i,L.data[i]);
    }
    return 0;
}

  • 写回答

1条回答 默认 最新

  • LYSnowy 2022-01-13 14:07
    关注

    如果你想要修改变量本身,就在传参的时候在变量前面加一个&,表示传入的是地址,否则你的初始化就是另一个变量

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月21日
  • 已采纳回答 1月13日
  • 创建了问题 1月13日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度