顺序表静态分配问题求解

在学习数据结构中的顺序表分配时,有代码是下面这样的,但是不能运行,因为
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;
}

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