如果我在Fortran声明语句中初始化变量,则该变量隐式接收SAVE属性,初始化表达式只执行一次.
例如,以下程序
program test
implicit none
call foo()
call foo()
contains
subroutine foo ()
integer :: i = 0
i = i + 1
write(*,*) i
end subroutine foo
end program test
Run Code Online (Sandbox Code Playgroud)
将打印
1
2
Run Code Online (Sandbox Code Playgroud)
由于这在许多其他语言中有所不同,我想知道为什么Fortran标准委员会选择了这种行为?
非常感谢!麦克风
fortran ×1