之间有什么区别
procedure(some_routine), pointer :: ptr
ptr => null()
和
procedure(some_routine), pointer :: ptr
nullify(ptr)
nullify 在幕后做些什么吗?或者它只是做同一件事的两种不同方式?
最佳答案
结果完全相同。赋值符号 =>
也可用于变量初始化或派生类型组件的默认初始化,其中nullify
语句是不可用的,但这只是一个语法问题,实际上它不是一个正确的赋值。
例如
type t
real, pointer :: ptr => null()
end type
是组件的默认初始化,并且
program p
real, pointer :: ptr2 => null()
是变量的初始化。变量
ptr2
隐含地是 save
与任何其他初始化变量一样(常见的错误来源)。
关于pointers - nullify(pointer) 和 pointer => null() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26675185/