【发布时间】:2011-02-04 15:51:34
【问题描述】:
对于我的编程语言类,第一个硬件问题是:
FORTRAN 中的局部变量是静态的还是堆栈动态的?初始化为默认值的局部变量是静态的还是堆栈动态的?给我看一些带有解释的代码来支持你的答案。提示:检查这一点的最简单方法是让您的程序测试子程序的历史敏感性。看看当你将局部变量初始化为一个值时会发生什么,而当你没有初始化时会发生什么。您可能需要调用多个子程序才能自信地锁定答案。
我写了几个子程序: - 创建一个变量 - 打印变量 - 将变量初始化为一个值 - 再次打印变量
对子例程的每次连续调用都会在变量未初始化时打印出相同的随机值,然后打印出初始化值。
变量未初始化时这个随机值是多少?
这是否意味着 Fortran 对子例程的每次调用都使用相同的内存位置,还是它动态地创建空间并随机初始化变量?
我的第二个子例程也创建了一个变量,但随后调用了第一个子例程。结果是一样的,只是打印的未初始化变量的随机数不同。我很迷茫。请帮忙!
非常感谢。
【问题讨论】:
-
在哪里教fortran?
-
语言不是直接教授的。它只是编程语言课程的一部分。它更多地是关于学习编程语言结构并使用像 Fortran 77 这样的旧语言真的很重要。我们的课程主要围绕 Java。
标签: dynamic variables static scope fortran