는차이는
subroutine fillName(person)
type(PersonType), intent(inout) :: person
person%name = "Name"
end subroutine
를 가진 또는
subroutine fillName(person)
type(PersonType), pointer :: person
person%name = "Name"
end subroutine
는차이는
subroutine fillName(person)
type(PersonType), intent(inout) :: person
person%name = "Name"
end subroutine
를 가진 또는
subroutine fillName(person)
type(PersonType), pointer :: person
person%name = "Name"
end subroutine
pointer
이 노출 된 설명이없는 특정 인수 요구 사항이 다음에 실제적인 차이가 무엇입니까. 기본적으로 더미 인수 person
은 포인터 대상과 연결되어야합니다. 할당 또는 단순 포인터 할당 (=>
)을 통해 이루어질 수 있습니다. 유의해야 할 점은 서브 루틴을 실행하는 동안 더미 인수 person
의 포인터 연결에 대한 변경 사항은 전달 된 실제 인수에 반영된다는 것입니다. 맨 설명은 참조로 실제 인수를 전달하지만 포인터 연관은 전달하지 않습니다. 나는 키워드가 실제, 가정하면
다음 줄의 예에서 실제 차이는 가독성, 그들은 이후 작업하지만 intent(inout)
더 명시 적으로 모두 것이다.
기술적 인 차이점은 포인터가 null이거나 미정 인 반면, intent(inout)
이면 변수를 할당해야한다는 것입니다. 포인터는 서브 루틴에서 연관되거나 무효화 될 수 있지만 intent(inout)
인 임시 인수는 포함 할 수 없습니다.
pointer
또는 intent(inout)
을 지정하지 않은 경우 인수에 포인터를 전달하면 연결해야합니다.