program array_init
implicit none
real, dimension(5, 4) :: my_array
integer :: i, j
! 内存分配:在声明数组时,Fortran会根据数组的维度和元素类型自动分配内存
! 初始化:Fortran中数组初始化可以通过循环逐个赋值
do i = 1, 5
do j = 1, 4
my_array(i, j) = 0.5
end do
end do
write(*,*) my_array
end program array_init
Fortran中数组内存分配和初始化规则
- 内存分配:
- 当声明数组时,Fortran会根据数组的维度(如上述代码中的
(5, 4)
)和元素类型(real
)自动分配足够的内存空间。数组在内存中通常按列主序存储,即先存储第一列的所有元素,然后是第二列,以此类推。
- 初始化:
- 数组初始化可以通过显式地逐个赋值,如上述代码中使用
do
循环遍历数组的每个元素并赋值为0.5
。
- 也可以在声明时使用初始化列表,但对于复杂的初始化(如这里所有元素为
0.5
),循环赋值更加灵活和常见。在声明时初始化示例:real, dimension(2, 2) :: arr = reshape([1.0, 2.0, 3.0, 4.0], [2, 2])
,这里通过reshape
函数将一维列表转换为二维数组。