我正在学习 Fortran08 并且对为什么我无法执行以下操作感到困惑
integer :: array(8)
READ(*, *) array
array(2:)(::2)
,但以下工作正常
integer :: array(8)
integer :: temp(7)
READ(*, *) array
temp = array(2:)
temp(::2)
我正在学习 Fortran08 并且对为什么我无法执行以下操作感到困惑
integer :: array(8)
READ(*, *) array
array(2:)(::2)
,但以下工作正常
integer :: array(8)
integer :: temp(7)
READ(*, *) array
temp = array(2:)
temp(::2)
答案很简单,但我不知道这是否有用。它根本不是合法的 Fortran 语法。
为什么会这样?因为标准是这样说的。为什么?因为委员会是这样设计的。为什么?您必须询问他们,但请注意可能与字符串数组索引发生冲突。
与 C 不同,Fortran 根本不使用连续的数组索引括号。Fortran 和 C 的数组语法在多个方面都非常不同。
没有array(2::2)
达到你所需要的?