之间有什么区别
procedure(some_routine), pointer :: ptr
ptr => null()
和
procedure(some_routine), pointer :: ptr
nullify(ptr)
nullify会在幕后做些什么吗?或者它只是两种不同的方式来做同样的事情?
答案 0 :(得分:4)
结果完全相同。赋值符号=>
也可以用于变量初始化或派生类型组件的默认初始化,其中nullify
语句不可用,但这只是一个语法事物,实际上它不是一个正确的赋值。
例如
type t
real, pointer :: ptr => null()
end type
是组件的默认初始化,
program p
real, pointer :: ptr2 => null()
是变量的初始化。变量ptr2
与任何其他初始化变量(常见错误源)隐式save
。