print *, 'Array elements:' do i = 1, n print *, 'array(', i, ') = ', array(i) end do ! 释放数组 deallocate(array) end program dynamic_array 代码解释 分配数组: 使用 allocate 语句动态分配数组 array,大小由用户输入的 n 决定。 初始化数组: 使用 do 循环初始化数组 array 的元素。 打...
初始化数组元素 end do end subroutine initialize_array end program pointer_example 在上面的示例中,我们首先声明了一个指针变量ptr,然后使用allocate语句为数组分配了内存空间,并将其地址赋给了指针变量。接下来,我们调用了一个子程序initialize_array,该子程序使用指针参数来初始化数组元素。最后,我们使用指针变量ptr...
Fortran实际上还有指针pointer,与c语言的指针相比感觉非常鸡肋: 1. 我们没有用Fortran建立链表之类的动态需求,动态数组完全够用。 2. 语法比c语言更繁琐而且更弱,需要target形容的变量才能被指针指向,也没有*p这种运算。 3. 各种Fortran编译器对于指针的实现可能有差异或麻烦,我们倾向于完全避免使用指针。 Fortran的指...
Fortran: type outputobj0 integer::intarraysize=0 integer::doublearraysize=0 integer,pointer::intarray(:)=>null() real*8,pointer::doublearray(:)=>null() end type In the above, intarray and doublearray do not contain the address of the first element of an array (as is the case wi...
POINTER(pointer_name,pointee_name[array_spec]) Fortran 95 指针声明如下: POINTERobject_name 不能混用这两种类型的指针。 4.3.4 Cray 指针的功能 无论何时引用指针对象,f95均使用当前的指针值作为指针对象的地址。 Cray 指针类型语句声明指针和指针对象。
INTEGER, POINTER :: PTR(:) INTEGER, TARGET :: TARG(5) PTR => TARG ! PTR is associated with TARG and is ! assigned an array specification of (5) PTR(1) = 5 ! TARG(1) has value of 5 PRINT *, FUNC() CONTAINS REAL FUNCTION FUNC() POINTER :: FUNC ! Function result is a poin...
利用ALLOCATABLE属性(或POINTER属性)在类型声明语句中声明。 INTEGER,ALLOCATABLE::array(:,:) ALLOCATE(array(l000,1000),STATUS=istat) ... DEALLOCATE(array,STATUS=istat) 8.5 在过程中作为形参的可分配数组 8.5.1 可分配形式参数 如果子例程有显式接口(module), 那么对于子例程(subroutine)来说, 它的形式...
ptr_array=>my_matrix(ptr_target,:) print*,"第",ptr_target,"行的元素为:",ptr_array endprogramarray_pointer_example ``` 在这个示例中,我们首先声明了一个3行4列的整型数组my_matrix,并初始化了其元素。然后,我们声明了一个整型指针ptr_target,并将其赋值为5。接着,我们使用数组指针ptr_array,将其...
这通常与`POINTER`关键字一起使用。 以下是一些关于`TARGET`的基本用法的示例: ```fortran PROGRAM TargetExample INTEGER, TARGET :: A(5) ! A is a target array INTEGER, POINTER :: B(:) ! B is a pointer array A = [1, 2, 3, 4, 5] B => A ! B now points to the same memory as...
在上面的示例中,assign 子例程使用引用机制将 y 的值赋给 x。modify_array 子例程使用引用机制将 arr_ptr 的值赋给 arr。通过引用机制可以直接操作变量的值,而不需要操作其地址。总之,在Fortran中,可以通过指针来访问变量的地址,通过引用来操作变量的值,这两种机制可以方便地实现对变量的操作。