値渡し
読み:あたいわたし
C/C++などにおける、関数への引数の渡し方の一つ。
概要
Cでは、値そのものか、値へのポインターのいずれかを引数として渡すことができる。
前者を値渡し、後者をポインター渡しという。
特徴
イミディエイト(即値)や変数の他、式を渡すことも可能だが、関数には、その評価結果のみが渡される。
整数や実数の変数、あるいは構造体などを渡すことも可能で、呼ばれた関数は、それを複写し新たな変数として関数内に用意する。従って値渡しの場合、呼ばれた側で値を書き換えても、呼び出し元の変数は変化しない。
値渡しでは、元の値を複写することになるため受け取ったものをそのまま使えるという利点があるが、大型の構造体などを渡す場合は複写処理に時間を要することになり処理効率が落ちる(オーバーヘッドが大きくなる)という欠点もある。
再検索