旧gaaamiiのブログ

間違ったことを書いている時があります。コメントやTwitter、ブコメなどでご指摘ください

引数とは -仮引数(parameter)と実引数(argument)

苦しんで覚えるC言語でちまちまとC言語のお勉強をしています。評判通りポインタがややこしくてつまづいているところなので、引数のお話でもまとめようかと。

引数とは

引数(ひきすう、いんすう[1][2]、Parameter)とは、コンピュータープログラミングで用いられる用語で、仮引数と実引数の総称である。仮引数はサブルーチンやメソッド等のプロシージャー定義の部分で定義されるもので、実引数はプロシージャーを呼び出すときに指定するものである。実行時には、実引数の値を仮引数が受け取る。なお、誤解を避けるため「ひきすう」と読むのが一般的で、「いんすう」は間違いであるとされることも多い。
引数 - Wikipedia

なるほど意味分からん。とりあえず「ひきすう」って読むことはわかった。

仮引数(parameter)と(argument)

仮引数と実引数ってものがあるらしい。

仮引数(parameter)とは

仮引数(かりひきすう、かびきすう、parameter、formal parameter(argument))とは、プロシージャーで定義される変数のうち、実行時に呼び出し元から渡される(実引数の)値を受けるものをいう。
引数 - Wikipedia

実引数(argument)とは

実引数(じつひきすう、argument、actual argument(parameter))とは、プロシージャーを呼び出す際に渡す値のことで、プロシージャーの挙動(動作や結果)に作用する。変数や即値を含む式を指定できる。
引数 - Wikipedia

うん、もっと意味分からない...。

実際に使ってみると

実際にコード見てみた方が早いんじゃないか、ということでサンプルコードを見てみる。

#include <stdio.h>

int sum(int,int);

int main(void)
{
	sum(50,100);  /*(50,100)が実引数*/
	return 0;
}

int sum(int min,int max)  /*min,maxが仮引数*/
{
	printf("%d\n",(min + max) * (max - min + 1) / 2);
	return 0;
}

ぱっと見でわかるのは、( )内にある変数っぽいものは仮引数、( )内にある数値っぽいものは実引数ということ。

関数っていう枠があって、その枠外へ数値を渡す時に使うものが引数って感じかな。

もう少し勉強が進んだら実践的なコードと一緒に見ていきたい。