今注目のニュース
ショック!ドラえもん・クレヨンしんちゃん時間帯移動にネット「テレビがオワコン」
あおり殴打事件の男女はガラケー?ガラホ?今どきガラケーな人たちの主張
滝クリ"42歳出産"で気になる出生前診断の今

引数単語

ヒキスウ

掲示板をみる(9)
  • twitter
  • facebook
  • はてな
  • LINE

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

概要

多くのプログラミング言語では、繰り返し使われる処理を効率的に記述するためにサブルーチンを定義できる。関数を用いることで、プログラム中に何度も出現する処理の定義を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つの引数を与えた場合でも正しく引数の和を計算することができる。更に、引数の個数が幾つであっても受け付けるようなサブルーチンを定義できるプログラミング言語もある。そのような仕組みは可変長引数と呼ばれる。

関連動画

関連商品

関連コミュニティ

関連項目

掲示板

  • 7ななしのよっしん

    2014/10/08(水) 00:30:29 ID: HElY1G8S4C

    オーバーロードは便利
    というかないと仕事にならん

  • 8ななしのよっしん

    2015/07/02(木) 10:25:26 ID: 0EUj+MSB5O

    いちおうwikipediaさんは「いんすう」とも読む、って書いてるんだけどな

  • 9ななしのよっしん

    2018/05/21(月) 00:01:47 ID: 2agrqMSlhj

    化学をバケがくと読むようなもんか

急上昇ワード

最終更新:2019/08/22(木) 09:00

ほめられた記事

最終更新:2019/08/22(木) 09:00

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

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

OK

追加に失敗しました。

OK

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

       

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

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

OK

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

TOP