在fortran循环中使用指针变量

JRR*_*JRR 2 fortran loops fortran90

我想知道什么应该是使用指针变量作为循环计数的fortran程序的行为?比如使用gfortran,这个程序:

program foo
  integer, pointer :: x
  integer, target :: y
  x => y
  do x=0,10
    y = 100                                                                                                                                                                                                                   
    print*, "hello"
  enddo
end program
Run Code Online (Sandbox Code Playgroud)

执行时变成无限循环.这应该发生吗?

Ian*_*anH 7

示例程序不符合标准.您不得以任何方式更改do变量(F2008 8.1.6.6.2p3),其中包括使用指针的"幕后"技巧.

因此一切皆有可能.