0

我正在学习 Fortran08 并且对为什么我无法执行以下操作感到困惑

integer :: array(8)
READ(*, *) array
array(2:)(::2)

,但以下工作正常

integer :: array(8)
integer :: temp(7)
READ(*, *) array
temp = array(2:)
temp(::2)
4

1 回答 1

2

答案很简单,但我不知道这是否有用。它根本不是合法的 Fortran 语法。

为什么会这样?因为标准是这样说的。为什么?因为委员会是这样设计的。为什么?您必须询问他们,但请注意可能与字符串数组索引发生冲突。

与 C 不同,Fortran 根本不使用连续的数组索引括号。Fortran 和 C 的数组语法在多个方面都非常不同。

没有array(2::2)达到你所需要的?

于 2019-01-28T13:51:03.793 回答