指向单变量的指针也是可以用的。
譬如,以前要相同的处理两个量。需要写两种可能,有了指针,只写一种就可以了。
[Fortran] 纯文本查看 复制代码 real :: rAmp , rPhz
if ( ... )
call proc( rAmp )
rAmp = func( rAmp )
call write( rAmp )
else
call proc( rPhz )
rPhz = func( rPhz )
call write( rPhz )
end if
用指针的话,可以很简单的写为:
[Fortran] 纯文本查看 复制代码 real , target :: rAmp , rPhz
real , pointer :: p
if ( ... )
p => rAmp
else
p => rPhz
end if
call proc( p )
p = func( p )
call write( p )
当然了,把那三句话写成子程序,用 rAmp 和 rPhz 分别做参数,也可以。但是相对还是麻烦些 |