2つの値を交換する

明解C言語 入門編 > 10. ポインタ >

2つの値を交換する

Delphi


program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

procedure swap1(nx:Integer; ny:Integer);
var
tmp: Integer;
begin
tmp := nx;
nx := ny;
ny := tmp;
end;

procedure swap2(var nx:Integer; var ny:Integer);
var
tmp: Integer;
begin
tmp := nx;
nx := ny;
ny := tmp;
end;

procedure swap3(nx:PInteger; ny:PInteger);
var
tmp: Integer;
begin
tmp := nx^;
nx^ := ny^;
ny^ := tmp;
end;

procedure main();
var
na, nb: Integer;
begin
na := 57;
nb := 21;

Writeln(Format('整数A:%d', [na]));
Writeln(Format('整数B:%d', [nb]));
Writeln('');

swap1(na, nb);

Writeln(Format('整数A:%d', [na]));
Writeln(Format('整数B:%d', [nb]));
Writeln('');

na := 57;
nb := 21;
swap2(na, nb);

Writeln(Format('整数A:%d', [na]));
Writeln(Format('整数B:%d', [nb]));
Writeln('');

na := 57;
nb := 21;
swap3(@na, @nb);

Writeln(Format('整数A:%d', [na]));
Writeln(Format('整数B:%d', [nb]));
Writeln('');
end;

begin
main;
end.

実行結果

S:\>lesson077\Project1.exe
整数A:57
整数B:21

整数A:57
整数B:21

整数A:21
整数B:57

整数A:21
整数B:57