无论在数值计算亦或是非数值计算,数组均有广泛的运用。因此,绝大多数 高级语言都将数组设为固有数据类型,
数组可看做普通线性表的推广,普通数组的各项操作都不会引起元素的插入或删除,故数组使用顺序存储结构。
假设每个数据元素占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) +
求和公式即为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类型 是存放变长参数表信息的数组
数组的存储结构定义: