Что не так с массивом (2:)(::2) в Фортране?
Я изучаю Fortran08 и озадачен, почему я не могу выполнить следующее
integer :: array(8)
READ(*, *) array
array(2:)(::2)
, но следующее работает отлично
integer :: array(8)
integer :: temp(7)
READ(*, *) array
temp = array(2:)
temp(::2)
1 ответ
Ответ прост, но я не знаю, насколько это полезно. Это просто недопустимый синтаксис Fortran.
Почему это так? Потому что стандарт так говорит. И почему? Потому что комитет разработал это таким образом. Зачем? Вы должны спросить их, но учтите, что может быть конфликт с индексацией массива строк.
Fortran просто не использует последовательные скобки индексации массивов, в отличие от C. Синтаксис массивов в Fortran и C сильно отличается во многих аспектах.
не array(2::2)
достичь того, что вам нужно?