|
|
|
|
|
by jasomill
676 days ago
|
|
For a last-century example of actual pass-by-reference, assign-by-copy, the PL/I program foo: proc options(main);
dcl sysprint print;
dcl a(3) fixed bin(31) init(1,2,3);
put skip data (a);
call bar(a);
put skip data (a);
bar: proc(x);
dcl x(3) fixed bin(31);
dcl b(3) fixed bin(31) init(3,2,1);
x = b;
b(1) = 42;
x(2) = 42;
put skip data (b);
put skip data (x);
end bar;
end foo;
outputs A(1)= 1 A(2)= 2 A(3)= 3 ;
B(1)= 42 B(2)= 2 B(3)= 1 ;
X(1)= 3 X(2)= 42 X(3)= 1 ;
A(1)= 3 A(2)= 42 A(3)= 1 ;
demonstrating that X refers to A in BAR and assigning B to X copies B into X (= A). |
|