ウィキペディアにおけるテンプレートの引数については、「Wikipedia:テンプレート引数」をご覧ください。
引数(ひきすう)、パラメータ(ー)(英語:parameter)は、数学における関数やコンピュータプログラムにおける手続きにおいて、その外部と値をやりとりするための特別な変数、あるいはその変数の値のことである。
数学や最適化問題に関するそれ(「パラメータ」とカタカナで表現されることが多い)については「媒介変数」の記事を参照のこと。以下は専らコンピュータプログラミングに関して説明する。
関数・サブルーチン・メソッド等を定義する時に、外部から値を渡される特別な変数として指定されるのが仮引数。関数(等)を呼出す式において、仮引数に対応する式(あるいはその値)が実引数である。実行時には、実引数の値を仮引数が受け取る。
「引数」を「いんすう」と読む読み方もある[1][2][3]が、術語としては変則的に湯桶読みして「ひきすう」としている。数学分野で因数(factor)との取違えを防ぐためといった理由もある。 仮引数(かりひきすう、かびきすう、parameter、formal parameter (formal argument))とは、手続き(プロシージャー)で定義される変数のうち、実行時に呼び出し元から渡される(実引数の)値を受けるものをいう。例としてC言語系言語における定義を挙げる:int sum(int addend1, int addend2){ return addend1 + addend2;} 上の定義では、 2つを伴った関数 sum を定義している。定義の中で addend1 と addend2 が変数のように使用されていることに注目されたい。 実引数(じつひきすう、argument、actual argument (actual parameter))とは、プロシージャーを呼び出す際に渡す値のことで、プロシージャーの挙動(動作や結果)に作用する。変数やリテラルを含む式を指定できる。C言語系言語において前に示した例中の関数 sum を用いた例を挙げる: sum(123, 456); 上の文は、 2つを関数 sum に渡している[4]。 値渡し(あたいわたし、call by value)は右辺値を渡す方法で、実引数として変数を渡したとしても、その値のみが渡される。もちろん即値や複雑な式を渡すこともでき、式の評価結果が渡される。その仕組みとしては、独立した新たな変数が関数内に用意され、元の値がコピーされる。そのため変数を渡したとしても、元の変数が変更されるという事はない。 これは「関数が副作用を持たない」という観点から、計算を中心とする言語では望ましい動作といえる。またそもそも代入概念のない関数型言語では、引数は必ず値で渡されると考えられる(ただし、代入が存在しない以上コピーをとる必要もない)。 値渡しを採用した言語としてはC言語、ML、APL、Scheme、Java等が挙げられる。 C言語やC++のポインタ変数が保持する値は変数に対する参照(メモリアドレス)であり、後述の参照渡しの参照と似た性質を持つ。このため、ポインタ変数を値渡しすると、値渡しでありながら参照渡しと似たような効果を得ることができる。このため、ポインタ(=メモリアドレス)を値渡しする事を単なる値渡しと区別して俗にポインタ渡しなどと呼ぶ事もある。 変数渡し(へんすうわたし、call by variable)は、変数そのもの(左辺値)を渡す方法で、この場合は仮引数に対する操作がそのまま実引数(渡された変数)に影響する。多くの言語では(とくに配列のようなデータ構造を戻り値にできない場合)戻り値はひとつの値だけしか返せないが、データベース検索などで見つかったかどうかと、見つかったならその値も知らせるような場合に、見つかったかどうかを戻り値にして、検索結果の値は適当な引数を変更するといった使い方ができる。 参照渡し(さんしょうわたし、call by reference)はその実装手段の一つ(と見ることもできる[5])。変数に対する参照(アドレス情報)を渡す方法である(これは言語側が勝手に行う。
仮引数
int 型の仮引数 addend1
int 型の仮引数 addend2
実引数
仮引数 addend1 に対応する実引数 123
仮引数 addend2 に対応する実引数 456
評価戦略「評価戦略」も参照
値渡し
ポインタ渡し
変数渡し
Size:15 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef