听课
课程与PC端同步更新,充分利用零碎时间。做题
海量精选试题,想练就练,瞬间提分。答疑
海量精选试题,想练就练,瞬间提分。直播
讲师大咖面对面,有问有大收获多。则在主程序中使用CALL语句调用子程序SB时,实参数组与形参数组的结合情况如下:
实参数组 形参数组
A (0)——B (-1)
A (1)一一B (0)
A (2)——B (1)
A (3)一一B (2)
A (4)
A (5)
也即调用SB时,A数组的头4个元素与B数组的元素对应,这些对应元素实际上为同一 存储地址。
如果实参是数组元素,则从该元素开始依次与形参数组的第一个元素起按列逐个对 应,它们也是按地址结合。例如,有主程序与子程序如下:
PROGRAM MAIN
DIMENTION A (8)
CALL SB (A(5))
END
SUBROUTINE SB (B)
DIMENSION B (3)
END
则在调用语句执行时,实参数组A与形参数组B的结合情况如下: 实参数组形参数组
A (1)
A (2)
A (3)
A (4)
A (5)——B (1)
A (6)一一B (2)
A (7)——B (3)
A (8)
FORTRAN 77规定,不管实参是数组名还是数组元素,用作实参的数组,其维数、各维下标的上下限及数组中元素个数可以和与之结合的形参数组不同,但要求从与形参数组的第一个元素结合的实参数组元素算起,以后的实参数组元素的个数不能少于形参数组元素的个数。
多维数组或数组元素虚实结合时,要特别注意FORTRAN中数组按列存放的规定, 不要搞错存储地址的对应关系。例如:
PROGRAM MAIN
DIMENSION A (3, 2)
CALL SB (A)