gpt4 book ai didi

pointers - Fortran 指针算法

转载 作者:行者123 更新时间:2023-12-04 04:37:43 26 4
gpt4 key购买 nike

这是我的第一篇提问帖……请不要残忍。

我的问题如下。我想分配一个 fortran 指针作为表达式。我认为通过简单的 fortran 技术是不可能的。但是由于新的 fortran 版本似乎提供了处理 C 和 C++ 中使用的东西的方法(如 c_ptr 和 c_f_pointer ... ),也许有人知道解决我的问题的方法。 (我对 C 一无所知,但我读到在 C 中可以进行指针运算)
为了让事情更清楚,这是我立即想到但不起作用的代码:

program pointer

real(8),target :: a
real(8),pointer :: b

b=>a*2.0d0 ! b=>a is of course working

do i=1,10
a=dble(i)*2.0d0
write(*,*)b
end do

end program

我知道有很多方法可以解决这个问题,但在实际程序中,我想到的所有这些都会导致更长的计算时间和/或相当复杂的代码。

非常感谢,提前!

最好的,彼得

最佳答案

来自 Michael Metcalf ,

Pointers are variables with the POINTER attribute; they are not a distinct data type (and so no 'pointer arithmetic' is possible).

They are conceptually a descriptor listing the attributes of the objects (targets) that the pointer may point to, and the address, if any, of a target. They have no associated storage until it is allocated or otherwise associated (by pointer assignment, see below):


所以你的想法 b=>a*2不起作用,因为 b正在分配给 a并没有给出 a 的值.

关于pointers - Fortran 指针算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19436011/

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