- 前言
- 一、注意事项
- 二、顺序表的静态数组的定义和初始化(C语言版)
- 1、代码
- 2、运行结果
- 总结
前言
主要介绍在C语言中,顺序表的静态数组的定义和初始化操作,经过调试,可以运行出结果。
一、注意事项
1、在C语言中,*与&的区别
a=&b代表b存储单元的地址为a,*a代表的是:(1)a存储单元的数据是另一个存储单元数据的地址(2)a则表示另一个数据单元的数据。
2、在C语言中,只有main函数内部能用.和&,自定义函数内部只能用->和
#include
#define MaxSize 10 //定义最大长度
typedef struct
{
int data[MaxSize];//用静态的数组存放数据元素
int length;//顺序表当前长度
}SqList; //顺序表类型定义
//基本操作——初始化一个顺序表
void InitList(SqList *L)
{
for(int i=0;i
L->data[i]=1;//将所有元素设置为默认初始值
//内存中可能会有遗留的脏数据
}
L->length=0;//顺序表初始长度为0
}
int main()
{
SqList L; //声明一个顺序表
InitList(&L);//初始化顺序表
for(int i=0;i < L.length;i++)
printf(“data[%d]=%dn”,i,L.data[i]);
//…
//后续操作
return 0;
}
运行结果为空,是因为设置L->length=0,所以没输出结果,但是程序没问题。
要运行出结果,只需要:把L->length设置为具体数值,比如说5。
调整代码:
#include
#define MaxSize 10 //定义最大长度
typedef struct
{
int data[MaxSize];//用静态的数组存放数据元素
int length;//顺序表当前长度
}SqList; //顺序表类型定义
//基本操作——初始化一个顺序表
void InitList(SqList *L)
{
for(int i=0;i
L->data[i]=0;//将所有元素设置为默认初始值
//内存中可能会有遗留的脏数据
}
L->length=5;//顺序表初始长度为0
}
int main()
{
SqList L; //声明一个顺序表
InitList(&L);//初始化顺序表
for(int i=0;i < L.length;i++)
printf(“data[%d]=%dn”,i,L.data[i]);
//…
//后续操作
return 0;
}
总结
以上就是今天要讲的内容,本文仅仅简单介绍了顺序表的静态数组的定义和初始化,后续顺序表的动态分配还在不断更新哦。