精通cobol--9.11.4 索引表的内部存储结构

本文详细介绍了COBOL中索引表的内部存储结构,与下标表不同,索引表的索引保存的是数据偏移量而非实际位置。通过示例代码展示了如何计算数据偏移量,并解释了程序员在编程时如何处理这种差异,尽管在程序中索引看起来是数值形式,但实际存储的是偏移量。

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

索引表的内部存储结构相对于下标表而言要相对复杂一些。在下标表中,数据的存储位置即下标的数值。而在索引表,数据的存储位置和索引数值往往并不一致,需要计算得到。

对于索引表而言,其中的索引保存的是数据偏移量,而并不是数据实际存储位置。数据的实际存储位置,通过将索引变量除以每个数据的大小得到。

下面以一个公司一周内的营业额为基本模型,讨论索引表的内部存储结构。首先,对该表进行定义及初始化,代码如下。

01   WEEK-SALES-DATA.

     05  FILLER     PIC 9(5)    VALUE  ‘15874’.

     05              PIC 9(5)    VALUE  ‘10876’.

05              PIC 9(5)    VALUE  ‘14586’.

05              PIC 9(5)    VALUE  ‘13587’.

05              PIC 9(5)    VALUE  ‘19784’.

05              PIC 9(5)    VALUE  ‘10030’.

05              PIC 9(5)    VALUE  ‘10088’.

01    WEEK-SALES-TABLE  REDEFINES  WEEK-SALES-DATA.

      05    SALES        PIC  9(5)

                          OCCURS   7  TIMES

                          INDEXED BY  SALE-NDX.

为方便讨论,这里没有定义数据编号,只包含一周内每天的营业额SALES这一个数据条目。以上代码实际上也是定义一个最小化索引表的代码。

假设这里要引用周五的营业额数据,则代码如下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值