回 帖 发 新 帖 刷新版面

主题:急!数组名带顺序数字的数组,循环如何引用进行顺序计算?

有的数组名组成有两部分:前面是字符,后面是顺序数字.如,a1[n],a2[n],a3[n]......请问循环如何引用这些数组进行顺序计算?如不能需建子程序,我没建过(所以,一直回避),能否告诉我怎样建?重谢!

回复列表 (共9个回复)

沙发

硬着头皮建了子程序,其实也不难,问题解决.但还是觉得用循环更简单些,数组名是不是可以当作字符串,运算后和循环变量[I]联系起来,想过,可想不出办法来.

板凳

在 FoxPro 里有一种方法号宏替代符号 &
在 C 里面有一种方法叫指针
在QB里没有,不过你可以找到它的地址,
根据数据类型变通调用

3 楼

请问MOZ君,怎样找地址,找到地址后又具体该怎样?能否提示两句?谢.

4 楼

这样是不行的,数组名只是一个符号,编译后不一定还在的
c中的指针,它也不是通过数组名建立影射的,

5 楼

[quote]数组名只是一个符号,编译后不一定还在的[/quote]
呵呵,那你可以编译试试看看嘛.

数组在内存里的段地址:   varseg ( S(0) )   '以0开始
数组在内存里的偏移地址: varptr ( S(0) )   '偏移地址,一般从0开始
                        varptr ( S(1) )   '=varptr( s(0) ) + 类型长度

知道储存的位置,你爱干嘛干嘛去了.
peek,  poke

6 楼

地址问题对我太难了,目前不打算深究了,这个问题我想通了,很简单,增加一维就是了,同时文件也不用建那么多,记录增加一维就行了,只是程序要重写了.

7 楼

当然,问题简单起来就是增加一维就可以了.

只是当你数组过大超过64K的时候你又要另想办法了
(最好用虚拟文件)

8 楼

何谓虚拟文件?愿闻其详.谢MOZ君多次关照.

9 楼

在DOS年代里,处理的基本内存是 640K
多出来的内存又有扩展内存和扩充内存.
于是就有各种各样的内存工具出现了.
其中就有一个虚拟驱动器.例如:
驱动  srdisk  
调用  shroom
现在一般的DOS版本都有这样的工具了.
可以把部分内存虚拟成一个不存在的驱动器,
所有操作跟文件一样,但却不是建立在硬盘的介质上,
所以就有了内存的速度.
特点: 快速,临时.

我来回复

您尚未登录,请登录后再回复。点此登录或注册