【发布时间】:2011-11-03 11:49:39
【问题描述】:
我在解决练习测试时遇到了这个问题
考虑以下使用传递引用语言编写的代码,例如 FORTRAN 和这些关于代码的语句
subroutine swap(ix,iy)
it = ix
ix = iy ! line L1
iy = it ! line L2
end
program main
ia = 3
ib = 8
call swap (ia, ib+5)
print *, ia, ib
end program
声明:
- 编译器将生成代码来分配一个临时的无名单元, 将其初始化为 13,并传递单元交换的地址
- 在执行时,代码将在 L1 行生成运行时错误
- 执行时,代码将在 L2 行生成运行时错误
- 程序将打印 13 和 8
- 程序将打印 13 和 -2
以上陈述中哪些是正确的。
我认为是 S1 和 S4。有人可以确认吗? TIA
【问题讨论】:
标签: fortran runtime-error pass-by-reference swap