Fortran,在使用 PARAMETER 属性初始化数组时最好使用 DIMENSION

Dav*_*sen 3 fortran

在 Fortran 中,这两种初始化参数数组的方法是否相同?如果不是,那是什么意思dimension(*)

integer, parameter, dimension(2) :: x = [1,2]

对比

integer, parameter, dimension(*) :: x = [1,2]

fra*_*lus 5

这两个声明的效果是一样的:一个 rank-1 命名的常量数组,[2]具有明显的值。

Usingdimension(*)使数组隐含形状而不是显式形状:命名常量具有常量表达式隐含的形状。

哪个更好?好吧,并非所有编译器都支持隐含形状(这是 Fortran 2008 的一项功能),但它无需担心两次写入形状。