引数単語

ヒキスウ

1.4千文字の記事
  • twitter
  • facebook
  • はてな
  • LINE
これはリビジョン 2302611 の記事です。
内容が古い・もしくは誤っている可能性があります。
最新版をみる

引数(ひきすう)とは、プログラミング言語においてサブルーチン(関数メソッド・手続き)に与える入のことである。少なくともプログラミング業界では「いんすう」とは読まないので注意。

概要

多くのプログラミング言語では、繰り返し使われる処理を効率的に記述するためにサブルーチンを定義できる。関数を用いることで、プログラム中に何度も出現する処理の定義を1箇所にまとめることができる。

では、あるデータに対して同じような処理を行いたい場合はどうすれば良いだろう。例えば、ある商品の消費税を計算する処理は、値段が与えられればその値段に対して行う処理(ここでは値段の値を1.05倍すること)は同じである。このように、与えられたデータに対して同じ処理を行わせたい場合には、引数を用いてサブルーチンに入を与えることができる。

例えば、ある商品の値段を与えたら消費税を計算してくれるようなサブルーチン(関数shouhizeiは以下のように定義できる。(以下のコード擬似コード

sub shouhizei(price) {
    return price * 1.05
}

このように定義することで、任意の商品の値段に対して消費税関数shouhizeiを用いて計算することが可になる。ここでのprice関数shouhizeiの引数である。より正確に表現すれば、price関数shouhizeiの仮引数である。仮引数と対になるものとして実引数があり、これはサブルーチンに対して実際に与えられる引数のことである。例えば上記のshouhizei関数を、

shouhizei(2525)

で呼び出した場合、2525が実引数である。

値渡しと参照渡し

引数の渡され方には大きく分けて2種類有る。1つが値渡し、もう1つが参照渡しである。

値渡しは、実引数の値をコピーしてサブルーチンに渡す。よって、サブルーチンの中で仮引数の値を変更しても、その変更は実引数で与えた値に反映されない。しかし、実引数で与えた変数の値そのものを変更したい場合も考えられる。その場合、サブルーチンには変数の値が格納されている場所(アドレス)を与え、サブルーチン内でその場所の値を書き換えることによって、与えられた変数の値を書き換えることができる。この最も有名な(かつ悪名高い)例がC言語におけるポインタである。

一方、参照渡しは変数の場所に関する情報サブルーチンに渡すことで、変数の値そのものの書き換えを可にする方法である。簡単に言えば、変数の場所の値渡しを自動的にやってくれるようなものである。

オーバーロードと可変長引数

オーバーロード(多重定義)とは、引数のや個数が異なるサブルーチンを同一の名前で定義することである。例えばサブルーチンaddを

sub add(a, b) {
    return a + b
}

sub add(a, b, c) {
    return a + b + c
}

のように定義すれば、addはadd(2, 3)のように2つの引数を与えた場合でも、add(2, 3, 4)のように3つの引数を与えた場合でも正しく引数の和を計算することができる。更に、引数の個数が幾つであっても受け付けるようなサブルーチンを定義できるプログラミング言語もある。そのような仕組みは可変長引数と呼ばれる。

関連動画

関連商品

関連コミュニティ

関連項目

おすすめトレンド

急上昇ワード改

最終更新:2021/10/22(金) 10:00

ほめられた記事

最終更新:2021/10/22(金) 10:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP