数据结构-数组

本文探讨了数组在编程中的重要性,指出数组是高级语言的固有数据类型,特别是对于数值和非数值计算的应用广泛。数组作为一种线性数据结构,其操作不涉及元素的插入或删除。详细介绍了二维数组的存储位置计算公式,并扩展到n维数组的映像函数。此外,还提到了数组相关操作的辅助宏定义、构造和销毁数组的方法,以及如何在数组中进行元素的访问和赋值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

无论在数值计算亦或是非数值计算,数组均有广泛的运用。因此,绝大多数 高级语言都将数组设为固有数据类型,

数组可看做普通线性表的推广,普通数组的各项操作都不会引起元素的插入或删除,故数组使用顺序存储结构。

假设每个数据元素占L个存储单元,则二维数组A中任一元素a[i][j]的存储位置可以表示为

LOC(i,j)=LOC(0,0)+(b2*i+j)L

LOC(i,j)是a[i][j]的存储位置,LOC(0,0)是a00的存储位置,即二维数组A的起始存储位置,也称为基地址或基址。

推广到一般情况:

LOC(j1,j2,...jn)=LOC(0,0,...0) + \sum ciji

求和公式即为n维数组的映像函数。通过它可以得到元素在数组中的地址。

首先是辅助宏的定义:

#include <stdarg.h> //标准头文件 ,提供宏va_start va_arg va_end
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define OVERFLOW -1
#define UNDERFLOW -2
#define MAX_ARRAY_DIM 8 //假设数组维数最大是8
va_list ap;//定义ap为va_list类型 是存放变长参数表信息的数组

数组的存储结构定义:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值