仮引数と実引数の違いは?わかりやすく解説!(プログラミング:関数定義:関数呼び出し:parameter argument など)
プログラミングを学んでいると、「仮引数」と「実引数」という言葉に出会うことがあります。
どちらも「引数(ひきすう)」という言葉を含んでいるため、混乱してしまう方も多いのではないでしょうか。
この2つの概念は、関数定義と関数呼び出しの場面でそれぞれ登場するものであり、プログラミングの基礎を理解するうえで非常に重要なポイントです。
英語ではそれぞれ「parameter(パラメータ)」と「argument(アーギュメント)」と呼ばれ、英語圏の技術ドキュメントでも頻繁に使われる用語です。
本記事では、仮引数と実引数の違いをわかりやすく解説し、具体的なコード例や比較表を用いながら、初心者の方でもしっかり理解できるように丁寧に説明していきます。
仮引数と実引数の違いを一言でいうと?
それではまず、仮引数と実引数の違いについて、結論からお伝えしていきます。
仮引数(parameter)とは、関数を定義するときに使う「受け取り用の変数」のことです。
実引数(argument)とは、関数を呼び出すときに実際に渡す「具体的な値」のことです。
つまり、仮引数は「箱の名前」であり、実引数は「その箱に入れる中身」といったイメージで理解すると、ぐっとわかりやすくなるでしょう。
たとえば「荷物を受け取る窓口(仮引数)」があり、そこに「実際に届いた荷物(実引数)」を渡すイメージです。
この関係性を頭に入れておくだけで、関数に関わるコードの読み書きがスムーズになります。
仮引数(parameter)の定義と役割
仮引数は、関数を定義する際に関数名の後ろの括弧内に書く変数のことです。
「仮」という字が示すように、まだ具体的な値は持っておらず、関数が呼び出されるまでは空の状態といえます。
関数が呼び出されると、実引数の値がこの仮引数に代入されて処理が始まります。
英語では「parameter(パラメータ)」と呼ばれ、技術書やAPIドキュメントでも一般的に使われる表現です。
実引数(argument)の定義と役割
実引数は、実際に関数を呼び出す際に括弧内に渡す「具体的な値」のことです。
「実」という字が示すように、実際に存在する値や変数が実引数として機能します。
数値・文字列・リスト・オブジェクトなど、さまざまな型の値を実引数として渡すことが可能です。
英語では「argument(アーギュメント)」と呼ばれ、コマンドライン引数など幅広い文脈でも登場する言葉です。
日常の言葉で整理する仮引数と実引数の違い
少し違う角度から整理してみましょう。
レストランで「注文を受けるスタッフ(仮引数)」と「お客さんが実際に注文する料理(実引数)」という関係に置き換えると直感的に理解しやすくなるでしょう。
スタッフは「何でも注文を受けられる準備」をしており、お客さんが実際に「ハンバーグをください」と伝えた瞬間、はじめて具体的な処理が動き出します。
このように、仮引数は「準備」、実引数は「実行」の場面で登場するという意識を持つと理解が深まります。
関数定義と関数呼び出しで見る具体例
続いては、実際のコードを通じて仮引数と実引数がどのように登場するかを確認していきます。
ここではPythonを例に挙げますが、考え方はJavaScriptやRuby、JavaなどのほかのプログラミングにC言語でも共通です。
Pythonでの仮引数と実引数の書き方
まず、シンプルな関数の例を見てみましょう。
def greet(name): # nameが仮引数(parameter)
print(“こんにちは、” + name + “さん!”)
greet(“太郎”) # “太郎”が実引数(argument)
この例では、関数定義の「name」が仮引数であり、関数呼び出しの際に渡された「”太郎”」が実引数です。
関数が呼び出されると、仮引数「name」に実引数「”太郎”」が代入され、「こんにちは、太郎さん!」と出力されます。
このように、定義時と呼び出し時で役割が明確に分かれているのが大きなポイントです。
複数の仮引数・実引数がある場合
実際の開発では、複数の引数を扱うことも非常に多いです。
def add(a, b): # a, bが仮引数(parameter)
return a + b
result = add(3, 5) # 3と5が実引数(argument)
print(result) # 出力:8
ここでは仮引数「a」と「b」に対して、実引数「3」と「5」がそれぞれ対応して渡されています。
仮引数と実引数の順番は基本的に対応しているため、渡す順序には注意が必要です。
引数の順番を間違えると、意図しない計算結果になるため、コードを書く際は常に意識しておきましょう。
JavaScriptでの対応例
JavaScriptでも考え方はまったく同じです。
function multiply(x, y) { // x, yが仮引数(parameter)
return x * y;
}
multiply(4, 6); // 4と6が実引数(argument)
言語が変わっても「定義側 = 仮引数、呼び出し側 = 実引数」というルールは一貫しています。
複数の言語を学ぶ際にも、この考え方をしっかり持っておくと混乱しにくくなるでしょう。
仮引数と実引数の比較表でおさらい
続いては、仮引数と実引数の違いを表にまとめて整理していきます。
ここまでの内容を視覚的に確認することで、より深く理解が定着するはずです。
| 項目 | 仮引数(parameter) | 実引数(argument) |
|---|---|---|
| 登場する場面 | 関数定義のとき | 関数呼び出しのとき |
| 役割 | 値を受け取るための変数 | 関数に渡す具体的な値 |
| 英語表記 | parameter(パラメータ) | argument(アーギュメント) |
| 値の有無 | 呼び出されるまで値がない | 呼び出し時に具体的な値がある |
| イメージ | 荷物を受け取る「窓口」 | 実際に届く「荷物の中身」 |
このように並べてみると、2つの違いが非常にシンプルに整理できます。
「どこで使われているか」に着目するだけで、仮引数か実引数かを判断できるようになるでしょう。
混同しやすいポイントとその注意点
仮引数と実引数はどちらも「引数」という言葉を含むため、初心者の方が混同しやすいポイントのひとつです。
特に注意したいのは、仮引数の名前と実引数の名前が異なっていてもよいという点です。
def greet(name): # 仮引数はname
print(name)
user = “花子”
greet(user) # 実引数はuser(変数名が違ってもOK)
上記の例では、仮引数は「name」ですが、渡している実引数は変数「user」です。
名前が違っても値が正しく渡されるため、「名前が一致しないといけない」という誤解は持たないようにしましょう。
デフォルト引数との関係
仮引数にあらかじめデフォルト値(初期値)を設定することもできます。
def greet(name=”ゲスト”): # デフォルト値付きの仮引数
print(“こんにちは、” + name + “さん!”)
greet() # 実引数なしで呼び出し → “こんにちは、ゲストさん!”
greet(“次郎”) # 実引数あり → “こんにちは、次郎さん!”
デフォルト引数を使うと、実引数を省略した場合でも関数が正常に動作します。
デフォルト値はあくまで「仮引数側」に設定するものという点を覚えておくと、コードの読み書きが楽になるでしょう。
キーワード引数(名前付き引数)の活用
Pythonなどでは、実引数を渡す際に仮引数の名前を指定する「キーワード引数」という書き方があります。
def profile(name, age):
print(name, age)
profile(age=25, name=”三郎”) # 順番が違ってもOK
キーワード引数を使うと、引数の順番に関わらず正確に値を渡せるため、可読性の高いコードが書けます。
引数が多い関数を扱う際には、特に活用する価値があります。
まとめ
本記事では、仮引数と実引数の違いについて、定義・役割・具体例・比較表を通じてわかりやすく解説してきました。
改めてポイントを整理すると、仮引数(parameter)は関数定義のときに使う受け取り用の変数であり、実引数(argument)は関数呼び出しのときに渡す具体的な値です。
「定義するとき = 仮引数」「呼び出すとき = 実引数」という対応関係を意識するだけで、どんな言語のコードを読む際にも混乱しにくくなるでしょう。
また、デフォルト引数やキーワード引数といった応用的な仕組みも、仮引数と実引数の基本を押さえた上で理解すると非常にスムーズです。
プログラミングの学習では、こうした基礎的な用語の意味をしっかりと理解することが、応用力につながる大切な第一歩です。
ぜひ本記事の内容を参考に、関数の仕組みへの理解をさらに深めていただけると幸いです。