nullify(指针)和指针之间的区别=>空值()

时间:2014-10-31 12:52:50

标签: pointers null fortran

之间有什么区别
procedure(some_routine), pointer :: ptr
ptr => null()

procedure(some_routine), pointer :: ptr
nullify(ptr)

nullify会在幕后做些什么吗?或者它只是两种不同的方式来做同样的事情?

1 个答案:

答案 0 :(得分:4)

结果完全相同。赋值符号=>也可以用于变量初始化或派生类型组件的默认初始化,其中nullify语句不可用,但这只是一个语法事物,实际上它不是一个正确的赋值。

例如

  type t
    real, pointer :: ptr => null()
  end type

是组件的默认初始化,

 program p
   real, pointer :: ptr2 => null()

是变量的初始化。变量ptr2与任何其他初始化变量(常见错误源)隐式save