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

顺序表静态分配问题求解

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

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

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

报告相同问题?

问题事件

  • 系统已结题 1月20日
  • 已采纳回答 1月13日
  • 创建了问题 1月13日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部