gpt4 book ai didi

fortran - 在 Fortran 95 中按值传递参数

转载 作者:行者123 更新时间:2023-12-03 09:14:52 28 4
gpt4 key购买 nike

如何在调用函数时保留函数参数的值而不创建新变量?这就是,如何按值传递参数?

在此示例代码中:

program what
implicit none
integer :: a, b, c, d

a = 1
b = 2
c = 3

print *, a,b,c

d = f(val(a), val(b), val(c))

print *, d

print *, a,b,c

d = f(a, b, c)

print *, d

contains

function f(x,y,z) result(h)
integer:: x,y,z
integer :: h

h = x+y+z
x = 0
y = 0
z = 0
end function
end program

当我第二次调用该函数时,它只打印 0。

最佳答案

在 Fortran 95 中没有办法。除了一些非常非标准的扩展,但它们不是 Fortran 95 或任何其他 Fortran,只是扩展。

在 Fortran 2003 中使用 value 属性。

function f(x,y,z) result(h)

integer, value :: x,y,z

该属性需要显式接口(interface),但您的示例有它,所以没关系。

关于fortran - 在 Fortran 95 中按值传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38848530/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com