196

「引数」と「パラメータ」という用語がどのように使用されているかについて、よく混乱します。これらは、プログラミングの世界では同じ意味で使用されているようです。

それらを使用するための正しい規則は何ですか?

4

12 に答える 12

214

パラメーターは関数によって入力として定義されるものであり、引数はパラメーターとして渡されるものです。

void foo(int bar) { ... }

foo(baz);

この例では、barは のパラメータですfoobazに渡される引数fooです。

于 2009-01-09T10:44:49.793 に答える
203

A Parameter is a variable in the declaration of a function:

functionName(parameter) {
    // do something
}


An Argument is the actual value of this variable that gets passed to the function:

functionName(argument);
于 2009-01-09T11:08:09.777 に答える
29

user1515422の場合、パラメーターと引数の違いを示す非常に具体的な例:

この関数について考えてみましょう。

int divide(int numerator, int denominator) {
    return numerator/denominator;
}

2つのパラメータがあります:numeratordenominator、定義時に設定されます。一度定義されると、関数のパラメーターは固定され、変更されません。

次に、その関数の呼び出しについて考えます。

int result = divide(8, 4);

この場合、8および4は関数に渡される引数です。numeratorパラメータは引数の値に設定され、に設定8denominator4ます。次に、引数の値に設定されたパラメーターを使用して関数が評価されます。このプロセスは、次と同等と考えることができます。

int divide() {
    int numerator = 8;
    int denominator = 4;
    return numerator/denominator;
}

パラメータと引数の違いは、変数とその値の違いに似ています。と書くint x = 5;と、変数はxで、値は5です。「変数xの値は5」の省略形として「xは5」などと言うのが自然なため、混乱が生じる可能性がありますが、区別が明確であることが望まれます。

それは物事を明確にしますか?

于 2012-07-27T00:11:26.777 に答える
15

引数は、サブルーチンを呼び出すときに使用するものです。パラメータは、サブルーチン内でアクセスしているものです。

argle(foo, bar);

foobarは引数です。

public static void main(final String[] args) {
    args.length;
}

argsパラメータです。

于 2009-01-09T10:45:39.683 に答える
6

この件については、ウィキペディアの記事のパラメーターにすばらしいセクションがあります。

つまり、パラメーターは関数によって定義された正式な名前であり、引数は実際の値 (5 など) または関数に渡されるもの (変数など) です。

于 2010-10-14T15:07:03.933 に答える
4

ウィキペディアは信頼できる情報源とは言えませんが、用語の説明はきちんとしています。

パラメータは引数に、クラスはオブジェクトのインスタンスにあると言えると思います...

于 2009-01-09T10:53:04.630 に答える
2

次のような関数を定義すると:

MyFunction(param1,param2) {
  print parameter1, parameter
}

関数を定義するときにパラメーターを設定します。次のように関数を呼び出すと:

MyFunction('argument1', 'argument2');

パラメータの値を、渡した引数に設定します。引数は、質問を呼び出すときに質問に入れるものです。それが役に立ったことを願っています。

于 2012-08-02T18:59:44.340 に答える
1

ほとんどの場合、プロシージャは呼び出された状況に関する情報を必要とします。反復または共有タスクを実行するプロシージャは、呼び出しごとに異なる情報を使用します。この情報は、呼び出し時にプロシージャーに渡す変数、定数、および式で構成されます。

この情報をプロシージャに伝えるために、プロシージャはパラメーターを定義し、呼び出し元のコードはそのパラメーターに引数を渡します。パラメータを駐車場、引数を自動車と考えることができます。さまざまな自動車がさまざまな時間に駐車場に駐車できるように、呼び出し元のコードは、プロシージャを呼び出すたびに、同じパラメーターにさまざまな引数を渡すことができます。

パラメーター

パラメーターは、呼び出し時にプロシージャーが渡すことを期待する値を表します。プロシージャの宣言は、そのパラメータを定義します。

FunctionまたはSub プロシージャを定義するときは、プロシージャ名の直後の括弧内にパラメーター リストを指定します。パラメータごとに、名前、データ型、および受け渡しメカニズム (ByVal または ByRef) を指定します。また、パラメーターがオプションであることを示すこともできます。つまり、呼び出し元のコードが値を渡す必要はありません。

各パラメータの名前は、プロシージャ内でローカル変数として機能します。パラメータ名は、他の変数と同じように使用します。

引数

引数は、プロシージャを呼び出すときにプロシージャ パラメータに渡す値を表します。呼び出し元のコードは、プロシージャを呼び出すときに引数を提供します。

FunctionまたはSub プロシージャを呼び出すときは、プロシージャ名の直後の括弧内に引数リストを含めます。各引数は、リスト内の同じ位置にあるパラメーターに対応します。

パラメータ定義とは対照的に、引数には名前がありません。各引数は式であり、0 個以上の変数、定数、およびリテラルを含めることができます。評価された式のデータ型は、通常、対応するパラメーターに定義されたデータ型と一致する必要があり、いずれの場合もパラメーター型に変換可能でなければなりません。

于 2012-08-02T12:04:01.253 に答える
1

単純に大きな違いはありません。これを深く掘り下げると、差分を特定できます。主に、引数/パラメーター/署名がすべて同じであることがわかります。

基本的にParameter は、渡すデータのタイプを定義します。Argument は、 渡す実際のデータ/変数を定義します

パラメータの例:-

int add(int a,int b){ //Here a and be both can treated as Parameter
 return a+b;
}

引数の例:-

int return_result=add(3,4); // Here 3 and 4 both can treated as Argument

or

int x=3,y=4;
int return_result=add(x,y);// Here x and y both can treated as Argument
于 2012-08-01T13:39:50.573 に答える
0

変数は、格納場所であり、データ、値を含む関連する記号名 (識別子) です。

パラメータは、関数に渡される変数です。

引数は、関数に渡されるデータ (値) です。

$variable = 'data/value';

function first($variable){ ... }

function second('data/value'){ ... }
function third(16){ ... }

function first では、パラメーターを渡します。

関数 second と third では、引数を渡しています。

于 2012-11-09T13:23:13.113 に答える
0

実際、パラメーターと引数はどちらも異なるタイプのパラメーターです。それらは

1) 仮パラメータ - 変数は関数/サブルーチン定義に表示されます

たとえば。(Javaで)

public void foo(Integer integer, String... s2)

ここで、integer と s2 はどちらも正式なパラメーターまたは大まかに言えばパラメーターです。

2) 実際のパラメーターまたは引数 - 変数は、呼び出し中にサブルーチンに表示されます。

定義済みサブルーチン

たとえば。(Java で) 関数 "foo" がオブジェクト "testObject" に存在する場合、

testObject.foo(new Integer(1), "test")

そのため、関数定義の変数は仮パラメーターまたは単にパラメーターと変数と呼ばれ、メソッドの呼び出しは実際のパラメーターまたは引数として呼び出されます。お役に立てば幸いです。

于 2012-08-02T12:14:28.373 に答える
0

基本的な代数のように考えてください。X は入力する必要があるパラメーターであり、その中に配置する数字は引数です。したがって、X+2 のような方程式がある場合、X はパラメーターであり、X に対して変更した数値は引数として認識されます。したがって、その式を使用して x に 1 を追加すると、1+2 が得られます。つまり、1 は引数であり、X のパラメーターに提供されます。

同様に、dosomething("This") のような関数がある場合、その定義は dosomething(string parametername) になりますが、"This" は、ここでは parametername という名前のパラメーターに提供される実際の引数になります。

最も簡単に見ると、パラメーターは引数が埋めるものであり、引数はそのパラメーターで許可されている任意の数にすることができます。

したがって、上記の X+1 式のように、1 つのパラメーターに多くの有効な引数を指定できるため、パラメーターと引数の間の多対 1 の関係になります。X は既知の任意の数にすることができ、それらはすべて有効です。

于 2012-08-02T17:32:32.963 に答える