MST

星途 面试题库

面试题:Fortran数组的内存分配与初始化

在Fortran中,假设有一个二维数组,其维度为5行4列,元素类型为实数类型。请用Fortran代码实现该数组的声明、内存分配以及初始化为所有元素值为0.5。并解释Fortran中数组内存分配和初始化的规则。
38.0万 热度难度
编程语言Fortran

知识考点

AI 面试

面试题答案

一键面试
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中数组内存分配和初始化规则

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