pascal指针变量

来源:百度知道 编辑:UC知道 时间:2024/06/09 04:17:36
a=3 b=6
x^=@a
y^=@b
交换x^,y^
write(a,b)
交换a,b
write(a,b)
两次输出的结果是多少?
怎么算得

3 6
3 6

执行以下程序得到答案:3663
var
a,b,c:integer;
x,y,z:^integer;
begin
a:=3;
b:=6;
new(x);
new(y);
new(z);
x^:=a;
y^:=b;
z^:=x^;
x^:=y^;
y^:=z^;
write(a,b);
c:=a;
a:=b;
b:=c;
write(a,b);
end.

初始时:
a=3,b=6,x^=3,y^=6
交换x^,y^后:
a=3,b=6,x^=6,y^=3
输出36
交换a,b后:
a=6,b=3,x^=6,y^=3
输出63

3 6 3 6