Problemas con punteros
Publicado por Tom (4 intervenciones) el 29/01/2003 22:00:31
Considerando el siguiente programa:
PROGRAM Direccion(output)
TYPE
PInt = ^Integer;
VAR
Uno, Dos : Integer;
X, Y : PInt;
PROCEDURE Inter (VAR A : PInt; B : PInt);
VAR Tmp : PInt;
BEGIN
Tmp := A;
A := B;
B := Tmp;
END;
BEGIN
Uno := 1;
Dos := 2;
X := @Uno;
Y := @Dos;
Inter(X,Y);
X^ := 2;
Y^ := 1;
writeln(Uno, Dos:2);
END.
Me gustaria saber por que el resultado es 1 , 1. Me lio mucho con los punteros y cuando los pasa a el procedimiento porque parece que aunque se pasen por valor tambien afecta al resto de programa o.
Gracias de antemano! un saludo!
PROGRAM Direccion(output)
TYPE
PInt = ^Integer;
VAR
Uno, Dos : Integer;
X, Y : PInt;
PROCEDURE Inter (VAR A : PInt; B : PInt);
VAR Tmp : PInt;
BEGIN
Tmp := A;
A := B;
B := Tmp;
END;
BEGIN
Uno := 1;
Dos := 2;
X := @Uno;
Y := @Dos;
Inter(X,Y);
X^ := 2;
Y^ := 1;
writeln(Uno, Dos:2);
END.
Me gustaria saber por que el resultado es 1 , 1. Me lio mucho con los punteros y cuando los pasa a el procedimiento porque parece que aunque se pasen por valor tambien afecta al resto de programa o.
Gracias de antemano! un saludo!
Valora esta pregunta


0