PROGRAM Ptr_int
IMPLICIT NONE
INTEGER, POINTER :: ptr1, ptr2
INTEGER, TARGET :: n, p
n = 10 ; p = 20
ptr1 => n
ptr1 => p
print*,n, p, ptr1, ptr2
ptr1 = 25
ptr2 = ptr2 +1
print*,n, p, ptr1, ptr2
ptr1 = ptr2
print*,n, p, ptr1, ptr2
ptr1 => ptr2
ptr1 = ptr1 + 5
print*,n, p, ptr1, ptr2
END PROGRAM Ptr_int
La déclaration :
INTEGER, POINTER :: ptr1, ptr2
précise que La déclaration :
INTEGER, TARGET :: n, p
précise que les deux entiers sont des cibles c-à-d succeptibles
d'être associés à un pointeur.
La déclaration :
ptr1 => n
ptr1 => p
signifie que
print*,n, p, ptr1, ptr2
donne
ptr1 = 25
ptr2 = ptr2 +1
signifie que l'entier associé à
print*,n, p, ptr1, ptr2
donne
ptr1 = ptr2
signifie que l'entier associé à
print*,n, p, ptr1, ptr2
donne Notez la différence avec l'instruction suivante
ptr1 => ptr2
signifie que
ptr1 = ptr1 + 5
print*,n, p, ptr1, ptr2
donne