lwq1834515 发表于 2015-4-11 09:22:26

新人关于指针的问题

      指针可以指向一个一维数组吗(不是数组中的一个数,是整个数组)?      我想对整个数组进行矢量计算。刚刚接触FORTRAN,很多不明白的地方,请多指教。

li913 发表于 2015-4-11 10:24:48

program test
    integer,target:: n(3)=(/1,2,3/)
    integer,pointer::p(:)
    p => n
    print*,p
    pause
end program
针对数组运算,ivf编译器会自动矢量化,用不着采用指针。

lwq1834515 发表于 2015-4-11 13:25:06

li913 发表于 2015-4-11 10:24
program test
    integer,target:: n(3)=(/1,2,3/)
    integer,pointer::p(:) ...

    谢谢解答,再请教一下。                                                                                                                                       
    integer,pointer::p(:)的话,不就是三个指针了吗?                                                                              
    最初的想法是把一些向量存在二维数组里,知道行和列的话就可以取出这个向量,指针是不是实现不好?定义成四维的数组会好一点吗?

fcode 发表于 2015-4-11 14:22:54

integer,pointer::p(:)

是一个指针,不是三个指针。

Fortran 只有“指向数组的指针”,而没有“指向变量的指针数组”。

知道行列,取出向量,不需要指针既可实现。

integer :: a(2,2) = reshape( , )
a(:,1) 就是第一行
a(:,2) 就是第二行
a(1,:) 就是第一列
a(2,:) 就是第二列

lwq1834515 发表于 2015-4-11 16:45:40

fcode 发表于 2015-4-11 14:22
integer,pointer::p(:)

是一个指针,不是三个指针。


啊,我明白了,是一个指针。多谢指教,十分感激。:-D
页: [1]
查看完整版本: 新人关于指针的问题