在 Fortran 中,这两种初始化参数数组的方法是否相同?如果不是,那是什么意思dimension(*)
?
integer, parameter, dimension(2) :: x = [1,2]
对比
integer, parameter, dimension(*) :: x = [1,2]
这两个声明的效果是一样的:一个 rank-1 命名的常量数组,[2]
具有明显的值。
Usingdimension(*)
使数组隐含形状而不是显式形状:命名常量具有常量表达式隐含的形状。
哪个更好?好吧,并非所有编译器都支持隐含形状(这是 Fortran 2008 的一项功能),但它无需担心两次写入形状。