在学习数据结构中的顺序表分配时,有代码是下面这样的,但是不能运行,因为
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;
}
如果你想要修改变量本身,就在传参的时候在变量前面加一个&,表示传入的是地址,否则你的初始化就是另一个变量