pointers - nullify(pointer) 和 pointer => null() 的区别

标签 pointers null fortran

之间有什么区别

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/

相关文章:

C - 我可以对这两个不同的列表使用相同的函数吗?

C - 将指向数组的指针传递给函数以打印数组

c - 可能简单但令人困惑的分配错误

c# - 异常抛出 : read access violation. 这是 0xBF13D000

iphone - -sizeWithFont 在设备上的功能不同

linux - Fortran 77 从旧的 sun 机器读取未格式化的序列数据

fortran - OpenMP 竞争条件(Fortran 77 w/COMMON block )

fortran - 将用户类型转换为数组的通用接口(interface)

C: 我怎样才能改变变量写入的寄存器?

null - 零安全的好处