回 帖 发 新 帖 刷新版面

主题:关于fortran指针的问题

integer,parameter ::OBJ=INT_PTR_KIND()
 integer(OBJ) a
上面这两句话是定义了一个整型指针变量吧?
我想定义一个rectangle类型,然后用指针指向rectangle类型里面的每一个成员,我这样写对吗?帮我看看,先谢谢啦!
MODULE objects
    IMPLICIT NONE
    type rectangle
    integer::length=0,height=0,area=0
    end type rectangle
    integer,parameter ::OBJ=INT_PTR_KIND()
    integer(OBJ) plength,pheight,parea
END MODULE

回复列表 (共1个回复)

沙发

integer,parameter ::OBJ=INT_PTR_KIND()
 integer(OBJ) a

这不是指针。只是定义一个整数变量 a,这个整数的字节足以容纳一个地址。

a 还是常规变量,不是指针。

MODULE objects
    IMPLICIT NONE
    type rectangle
    integer::length=0,height=0,area=0
    end type rectangle
    integer,parameter ::OBJ=INT_PTR_KIND()
    integer(OBJ) plength,pheight,parea
END MODULE

这里定义了一个结构体 rectangle
另外定义了三个整型变量,plength , pheight ,parea
没有使用指针,更没指向

如果用指针,请学习 pointer 。另外,指针只能指向结构体变量,不能指向结构体成员。

比如 type( rectangle ) :: rt1 , rt2

可以指向 rt1 ,rt2 。但不能指向 rectangle

我来回复

您尚未登录,请登录后再回复。点此登录或注册