受け取った配列への書き込み
明解C言語 入門編 > 6. 関数 >
受け取った配列への書き込み
Perl
$NINSU = 5; sub int_set { (@vc) = @_; $no = $vc[0]; for (1..$no) { $vc[$_] = $_; } } sub int_set2 { ($no, $vc) = @_; for (0..$$no - 1) { $$vc[$_] = $_; } } @ary = (); print "関数 呼び出し前\n"; for (0..$NINSU - 1) { printf(" ary[%d] = %d\n", $_, @ary[$_]); } &int_set($NINSU, @ary); print "関数 呼び出し後\n"; for (0..$NINSU - 1) { printf(" ary[%d] = %d\n", $_, @ary[$_]); } &int_set2(\$NINSU, \@ary); print "関数 呼び出し後\n"; for (0..$NINSU - 1) { printf(" ary[%d] = %d\n", $_, @ary[$_]); }
実行結果
L:\>perl lesson_06_048.pl
関数 呼び出し前
ary[0] = 0
ary[1] = 0
ary[2] = 0
ary[3] = 0
ary[4] = 0
関数 呼び出し後
ary[0] = 0
ary[1] = 0
ary[2] = 0
ary[3] = 0
ary[4] = 0
関数 呼び出し後
ary[0] = 0
ary[1] = 1
ary[2] = 2
ary[3] = 3
ary[4] = 4