[Fortran] 纯文本查看 复制代码 program main
implicit none
integer :: ia(5),ib(9)
ia = [1,5,5,5,2]
ib = 0
ib(ia) = ib(ia) + [1,1,1,1,1]
write(*,*) ib
stop
end program
没特别仔细看,试着说两句:
我用CVF和ELF90试了一下,并不累加(我还是用老古董的编译器)。
感觉写法2的语法就不应该累加。因为从语法上看,看不出来右边的ib一定要用更新的值,或对ib(5)的三次操作要累加起来。
而写法1就非常明确,等号右边总是用更新的值,就有累加效果。
写法2的累加效果可能是编译器dependent,还是用写法1比较稳妥。 |