lookbook 发表于 2019-6-26 11:56:15

一个关于函数返回指针的问题

program main
implicit none

integer,target :: a

a=1

fun()=2
print*,a
contains
function fun() result(ptr)
    integer,pointer :: ptr

    ptr=>a
end function fun

end program main

gf, pgi都能通过,结果是2。
这个很有趣,
翻了下chapman的书,上面明确表示不能放左边,
但IFC 19.0上有这个用法。


liudy02 发表于 2019-6-26 13:13:25

fun()=2
print*,a

这是什么鬼东西……

lookbook 发表于 2019-6-26 13:16:57

liudy02 发表于 2019-6-26 13:13
fun()=2
print*,a



好久不见,要不你也去群里吧。

liudy02 发表于 2019-6-26 15:47:18

lookbook 发表于 2019-6-26 13:16
好久不见,要不你也去群里吧。

什么群,我完全不知道啊……

liudy02 发表于 2019-6-26 15:51:27

仔细看了下,原来有句contains
讨论的是函数返回的指针能不能被赋值的问题
fortran好像没有特别明确左值和右值的问题,不知道语言标准是咋定的

lookbook 发表于 2019-6-26 16:08:11

liudy02 发表于 2019-6-26 15:47
什么群,我完全不知道啊……

搜索 Fortran Coder

li913 发表于 2019-6-26 16:08:40

我试了下,ivf2019可以运行。这个的确有趣。

lookbook 发表于 2019-6-26 16:08:48

liudy02 发表于 2019-6-26 15:51
仔细看了下,原来有句contains
讨论的是函数返回的指针能不能被赋值的问题
fortran好像没有特别明确左值和 ...

你是对Cpp有很深的了解吧

lookbook 发表于 2019-6-26 16:10:25

li913 发表于 2019-6-26 16:08
我试了下,ivf2019可以运行。这个的确有趣。

给我加精:-lol

li913 发表于 2019-6-26 16:12:10

lookbook 发表于 2019-6-26 16:10
给我加精

那得版主才行。
页: [1] 2
查看完整版本: 一个关于函数返回指针的问题