为什么Fortran 90 Specification指定(5.2.8)必须使用TARGET关键字来将POINTER关联到它?为什么不是每个类型都是有效的目标?为什么Fortran POINTER需要一个TARGET?
例如,
INTEGER, POINTER :: px
INTEGER, TARGET :: x
x = 5
px => x
是有效语法,但
INTEGER, POINTER :: px
INTEGER :: x
x = 5
px => x
是
无效。
这是为什么呢?
我之前的评论并不准确。指针/目标关联会导致一些非常棘手的情况。如果您对Fortran中的指针/目标关联实践没有经验,我建议您进一步阅读。例如,请参阅此链接https://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/709550 – 2017-01-31 09:34:41