Что не так с массивом (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) достичь того, что вам нужно?

Другие вопросы по тегам