【发布时间】:2018-12-30 08:47:57
【问题描述】:
在讨论了这里发现的问题Correct execution of Final routine in Fortran 我认为了解具有指针结果的函数何时适合与普通或指针赋值一起使用会很有用。例如,给定这个简单的函数
function pointer_result(this)
implicit none
type(test_type),intent(in) pointer :: this
type(test_type), pointer :: pointer_result
allocate(pointer_result)
end function
我通常会使用test=>pointer_result(test),其中test 已使用pointer 属性声明。虽然正常分配test=pointer_result(test) 是合法的,但它意味着不同的东西。
与指针赋值相比,普通赋值意味着什么?
什么时候使用一个或另一个分配有意义?
【问题讨论】:
-
你知道赋值和指针赋值的区别吗?如果你这样做了,你能解释一下你最后一个问题想要什么吗?
-
我认为,指针赋值是将指针关联到右侧,这可能是表达式、例程、变量等。但不确定在进行正常赋值时它的真正含义。我想知道正常赋值的真正含义,它的含义以及何时使用它 - 在这里特别是应用到具有指针结果的函数。
标签: oop fortran function-pointers intel-fortran