主题:指针作为衍生数据类型的一个疑问
program test
implicit none
type data
real :: val
type(data),pointer :: next
end type data
type(data) :: a, b
! -- BODY --
allocate(a%next)
a%next%val = 1.
b = a
b%next%val = 2.
write(*,*) a%next%val, b%next%val
end program test
如以上测试程序,本意是a与b应独立的,输出结果为 1. 2.
但实际编译执行后输出结果是 2. 2.
为什么a与b就关联在了一起成了一样了,怎样使在“a=b”后仍保持a,b的相互独立?
implicit none
type data
real :: val
type(data),pointer :: next
end type data
type(data) :: a, b
! -- BODY --
allocate(a%next)
a%next%val = 1.
b = a
b%next%val = 2.
write(*,*) a%next%val, b%next%val
end program test
如以上测试程序,本意是a与b应独立的,输出结果为 1. 2.
但实际编译执行后输出结果是 2. 2.
为什么a与b就关联在了一起成了一样了,怎样使在“a=b”后仍保持a,b的相互独立?