2つの値を交換する

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

2つの値を交換する

Perl
sub swap1
{
    my ($nx, $ny) = @_;
    my $tmp = $nx;
    $nx = $ny;
    $ny = $tmp;
}

sub swap2
{
    my ($nx, $ny) = @_;
    my $tmp = $$nx;
    $$nx = $$ny;
    $$ny = $tmp;
}

$na = 57;
$nb = 21;

printf("整数A:%d\n", $na);
printf("整数B:%d\n", $nb);
print "\n";

&swap1($na, $nb);

printf("整数A:%d\n", $na);
printf("整数B:%d\n", $nb);
print "\n";

$na = 57;
$nb = 21;
&swap2(\$na, \$nb);

printf("整数A:%d\n", $na);
printf("整数B:%d\n", $nb);
print "\n";

$na = 57;
$nb = 21;
($na, $nb) = ($nb, $na);

printf("整数A:%d\n", $na);
printf("整数B:%d\n", $nb);
print "\n";

実行結果

L:\>perl lesson_10_077.pl
整数A:57
整数B:21

整数A:57
整数B:21

整数A:21
整数B:57

整数A:21
整数B:57