値渡し
読み方:あたいわたし
【英】pass by value, call by value
値渡しとは、プログラミング言語における関数呼び出し方式の1つで、呼出し側が指定した引数がコピーされたものが関数内部に渡され、使用されるというものである。
一般的に関数の定義に用いられる変数を仮引数、実際の呼出し時に具体的な値が定まった物を実引数と呼ぶ。呼出し元の処理から関数が呼び出されると、関数の先頭で引数の値が初期化される。値渡しの場合には、呼出し時の変数とは別に、同じ内容を持つ、関数内部でのみ使用される内部用の変数が作成される。
関数の引数を値渡しにした場合、関数内部でどのような処理をしても、呼出し元の値には一切影響が及ばない。一方、参照渡し(さんしょうわたし、pass by reference)にした場合は、関数内部の処理が、呼出し元に影響する可能性がある。
関数概念を持つほとんどの現代的なプログラミング言語は値渡しをサポートしている。C言語では、原則として値渡しのみをサポートする。ただし、C言語ではポインタ変数を持つため、ポインタを渡すことにより、擬似的に参照渡しを実現することができる。
なお、関数呼び出しという意味で「call by value」と言う場合もある。
|