program story

인수와 매개 변수의 차이점은 무엇입니까?

inputbox 2020. 10. 2. 22:11
반응형

인수와 매개 변수의 차이점은 무엇입니까?


메소드에 대해 구두로 말할 때, 인자매개 변수 또는 다른 것을 사용할지 확실하지 않습니다. 어느 쪽이든 다른 사람들은 내가 의미하는 바를 알지만 무엇이 옳고 용어의 역사는 무엇입니까?

저는 C # 프로그래머이지만 사람들이 다른 언어로 다른 용어를 사용하는지 궁금합니다.

기록을 위해 저는 컴퓨터 과학에 대한 배경 지식없이 독학을했습니다. ( 스티브 맥코넬 의 놀라운 책을 아직 가지고 있지 않은 다른 사람들을 위해 이것을 요청하고 있기 때문에 Code Complete 를 읽으라고 말하지 마십시오 .)

요약

일반적인 합의는 팀 환경에서 이러한 용어를 서로 바꿔서 사용할 수 있다는 것입니다. 정확한 용어를 정의하는 경우는 예외입니다. 그런 다음 " 형식 인수 / 매개 변수"및 " 실제 인수 / 매개 변수"를 사용하여 명확하게 할 수도 있습니다 .


매개 변수는 메소드 정의의 변수입니다. 메서드가 호출 될 때 인수는 메서드의 매개 변수에 전달하는 데이터입니다.

public void MyMethod(string myParam) { }

...

string myArg1 = "this is my argument";
myClass.MyMethod(myArg1);

매개 변수 는 함수 선언에서 변수입니다.

인수 는 함수에 전달되는이 변수의 실제 값입니다.


매개 변수인수 라는 용어를 정의하고 구별하는 주제 ( 매개 변수 참조 ) 에 대한 Wikipedia 항목이 이미 있습니다 . 간단히 말해서 매개 변수는 함수 / 프로 시저 / 메소드 서명의 일부이고 인수는 매개 변수에 대한 런타임 및 / 또는 호출 사이트에서 제공되는 실제 값입니다.

Wikipedia 기사에서는 두 용어가 종종 동의어로 사용된다고 말합니다 (특히 코드에 대해 비공식적으로 추론 할 때).

매개 변수를 일반적으로 인수라고도하지만, 인수는 런타임에 서브 루틴이 호출 될 때 매개 변수 변수에 할당 된 실제 값 또는 참조로 더 적절하게 생각됩니다.

두 정수를 가산 C의 다음 샘플 함수 주어 xy그 파라미터로 지칭 될 것이다 :

int add(int x, int y) {
    return x + y;
}

add아래에 표시된 예와 같이를 사용하는 호출 사이트 에서 123456호출 인수 로 참조됩니다 .

int result = add(123, 456);

또한 일부 언어 사양 (또는 공식 문서)은 매개 변수 또는 인수를 배타적으로 사용 하고 두 경우를 명확하게하기 위해 대신 formalactual 과 같은 형용사 를 사용하도록 선택합니다 . 예를 들어, C / C ++ 문서에서는 종종 함수 매개 변수형식 인수로 , 함수 호출 인수실제 인수로 참조 합니다. 예를 보려면 Visual C ++ 언어 참조 에서 " 정형 및 실제 인수 "를 참조하십시오 .


단순한:

  • P ARAMETER P LACEHOLDER (플레이스 홀더가 함수 이름 지정에 속하고 함수 본문에서 사용됨을 의미)
  • RGUMENT → CTUAL VALUE (수단이 함수 호출에 의해 전달되는 실제 값)

매개 변수는 함수를 호출 할 때 채워야하는 것입니다. 당신이 그것에 넣은 것은 논쟁입니다.

간단히 설정 : 인수는 매개 변수에 들어가고 인수는 매개 변수의 값입니다.

추가 정보 : http://en.wikipedia.org/wiki/Parameter_(computer_science)#Parameters_and_arguments


매개 변수 는 함수 선언에서 변수입니다.

인수 는 함수에 전달되는이 변수의 실제 값입니다.여기에 이미지 설명 입력


매개 변수와 인수라는 용어의 사용은 프로그래머와 저자 사이에서 다소 오용되었습니다. 메서드를 다룰 때 매개 변수 라는 용어 는 메서드 서명에서 자리 표시자를 식별하는 데 사용되는 반면 인수 라는 용어 는 메서드에 전달하는 실제 값입니다.

MCSD 인증 툴킷 (시험 70-483) C # 프로그래밍 , 1st edition, Wrox, 2013

실제 사례 시나리오

// Define a method with two parameters
int Sum(int num1, int num2)
{
   return num1 + num2;
}

// Call the method using two arguments
var ret = Sum(2, 3);

편집 할 때 사람들이 잊는다는 사실을 종종 미루 곤합니다. 구조 언어는 자연어에 기반합니다.

영어로

"매개 변수"는 자리 표시 자입니다. 그들은 음성 언어로 응답 형식을 설정합니다. 정의에 따라 응답을 제한하는 통화 당사자입니다.

"인수"는 고려중인 입장입니다. 당신은 당신의 의견을 주장합니다 : 당신은 주장을 고려합니다.

주요 차이점

논쟁의 주제별 역할은 에이전트입니다. 매개 변수의 주제별 역할은 수신자입니다.

상호 작용

인수를 남성 부분으로 생각하여 매개 변수를 여성 부분으로 만듭니다. 인수는 매개 변수에 들어갑니다.

용법

매개 변수는 일반적으로 정의에 사용됩니다. 인수는 일반적으로 호출에 사용됩니다.

질문

불협화음을 줄이기 위해 문장을 완성하십시오.

(A) 정의에 대해 말하면 :

  1. 어떤 인수가 사용됩니까 []?
  2. 이 매개 변수는 [] 무엇입니까?

(B) 호출에 대해 말하기 :

  1. 사용할 매개 변수, []?
  2. 이 매개 변수는 [] 무엇입니까?

대답

(ㅏ)

  1. on / in / against / with this parameter
  2. 인수 ...

(비)

  1. 그리고 몇 가지 예제 인수는 무엇입니까
  2. 인수 ...에 / 안 / 반대 / 함께 사용됨

겹침

당신이 상상할 수 있듯이, 대답 한 후에 : 구어에서,이 단어들은 때때로 동일한 반응을 생성 할 것입니다!

따라서 일반적으로 :

  • 일반적으로 매개 변수 정보를 원하는 사람은 유형, 변수 이름 등에 대해 더 많이 알고 싶어합니다. 예제 인수 만 제공하면 혼동 될 수 있습니다.

    • 일반적으로 누군가 인수 정보를 원하면 함수 나 매개 변수에 전달한 값을 알고 싶어합니다.

함수 / 메소드 매개 변수 는 결과를 계산하는 데 사용하는 값을 설명합니다.

a의 인수 는 함수 / 메서드의 특정 호출 중에 이러한 매개 변수에 할당 된 값입니다.


이 예가 도움이 될 수 있습니다.

int main () {
   int x = 5; 
   int y = 4;

   sum(x, y); // **x and y are arguments**
}

int sum(int one, int two) { // **one and two are parameters**
   return one + two;
}

또는 메서드에 대한 선택적 인수의 경우 다음과 같이 기억하는 것이 더 간단 할 수 있습니다.

public void Method(string parameter = "argument") 
{

}

parameter매개 변수, 값, "argument"인수 :)


매개 변수 및 인수

매개 변수 및 인수와 관련된 모든 다른 용어는 혼란 스러울 수 있습니다. 그러나 몇 가지 간단한 사항을 염두에두면 이러한 용어를 쉽게 처리 할 수 ​​있습니다.

  1. 함수 형식 매개 변수 는 함수 선언에 나열되며 함수 정의 본문에서 사용됩니다. 형식 매개 변수 (모든 종류)는 함수가 호출 될 때 무언가로 채워지는 일종의 공백 또는 자리 표시 자입니다.
  2. 인수는 형식 매개 변수에 채우기에 사용되는 무언가이다. 함수 호출을 기록 할 때 인수는 함수 이름 뒤의 괄호 안에 나열됩니다. 함수 호출이 실행되면 형식 매개 변수에 대한 인수가 플러그인됩니다.
  3. 값별 호출참조 별 호출 은 플러그인 프로세스에서 사용되는 메커니즘을 나타냅니다. 값별 호출 방법에서는 인수의 값만 사용됩니다. 이 값별 호출 메커니즘에서 형식 매개 변수는 해당 인수의 값으로 초기화되는 지역 변수입니다. 참조 별 호출 메커니즘에서 인수는 변수이고 전체 변수가 사용됩니다. 참조에 의한 호출 메커니즘에서 인수 변수는 형식 매개 변수를 대체하므로 형식 매개 변수에 대한 변경은 실제로 인수 변수에 적용됩니다.

출처 : Absolute C ++, Walter Savitch

그건,

여기에 이미지 설명 입력


The terms are somewhat interchangeable. The distinction described in other answers is more properly expressed with the terms formal parameter for the name used inside the body of the function and parameter for the value supplied at the call site (formal argument and argument are also common).

Also note that, in mathematics, the term argument is far more common and parameter usually means something quite different (though the parameter in a parametric equation is essentially the argument to two or more functions).


당신이 항공사라고합시다. 당신은 비행기를 만듭니다. 거기에 좌석을 설치합니다. 그런 다음 비행기에 승객을 채우고 어딘가로 보냅니다. 승객 (또는 오히려 시공간적으로 변경된 버전)이 하선합니다. 다음날 같은 비행기와 같은 좌석을 재사용하지만 이번에는 다른 승객과 함께 사용합니다.

비행기는 당신의 기능입니다.

매개 변수는 좌석입니다.

논쟁은 그 자리에가는 승객들입니다.


항상 기억하십시오 :-매개 변수가 수신되는 동안 인수가 전달됩니다.


인수는 매개 변수의 인스턴스화입니다.


예! 매개 변수와 인수는 다른 의미를 가지며 다음과 같이 쉽게 설명 할 수 있습니다.

함수 매개 변수 는 함수 정의에 나열된 이름입니다.

Function Arguments are the real values passed to (and received by) the function.


Simple Explanations without code

A "parameter" is a very general, broad thing, but an "argument: is a very specific, concrete thing. This is best illustrated via everyday examples:

Example 1: Vending Machines - Money is the parameter, $2.00 is the argument

Most machines take an input and return an output. For example a vending machine takes as an input: money, and returns: fizzy drinks as the output. In that particular case, it accepts as a parameter: money.

What then is the argument? Well if I put $2.00 into the machine, then the argument is: $2.00 - it is the very specific input used.

Example 2: Cars - Petrol is the parameter

Let's consider a car: they accept petrol (unleaded gasoline) as an input. It can be said that these machines accept parameters of type: petrol. The argument would be the exact and concrete input I put into my car. e.g. In my case, the argument would be: 40 litres of unleaded petrol/gasoline.

Example 3 - Elaboration on Arguments

An argument is a particular and specific example of an input. Suppose my machine takes a person as an input and turns them into someone who isn't a liar.

What then is an argument? The argument will be the particular person who is actually put into the machine. e.g. if Colin Powell is put into the machine then the argument would be Colin Powell.

So the parameter would be a person as an abstract concept, but the argument would always be a particular person with a particular name who is put into the machine. The argument is specific and concrete.

That's the difference. Simple.

Confused?

Post a comment and I'll fix up the explanation.


Or even simpler...

Arguments in !

Parameters out !


They both dont have much difference in usage in C, both the terms are used in practice. Mostly arguments are often used with functions. The value passed with the function calling statement is called the argument, And the parameter would be the variable which copies the value in the function definition (called as formal parameter).

int main ()
{
   /* local variable definition */
   int a = 100;
   int b = 200;
   int ret;

   /* calling a function to get max value */
   ret = max(a, b);

   printf( "Max value is : %d\n", ret );

   return 0;
}

/* function returning the max between two numbers */
int max(int num1, int num2) 
{
   /* local variable declaration */
   int result;

   if (num1 > num2)
      result = num1;
   else
      result = num2;

   return result; 
}

In the above code num1 and num2 are formal parameters and a and b are actual arguments.


Oracle's Java tutorials define this distinction thusly: "Parameters refers to the list of variables in a method declaration. Arguments are the actual values that are passed in when the method is invoked. When you invoke a method, the arguments used must match the declaration's parameters in type and order."

A more detailed discussion of parameters and arguments: https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html


Logically speaking,we're actually talking about the same thing. But I think a simple metaphor would be helpful to solve this dilemma.

If the metaphors can be called various connection point we can equate them to plug points on a wall. In this case we can consider parameters and arguments as follows;

Parameters are the sockets of the plug-point which may take various different shapes. But only certain types of plugs fit them.
Arguments will be the actual plugs that would be plugged into the plug points/sockets to activate certain equipments.


When we create the method (function) in Java, the method like this..

data-type name of the method (data-type variable-name)

In the parenthesis, these are the parameters, and when we call the method (function) we pass the value of this parameter, which are called the arguments.


According to Joseph's Alabahari book "C# in a Nutshell" (C# 7.0, p. 49) :

static void Foo (int x)
{
    x = x + 1; // When you're talking in context of this method x is parameter
    Console.WriteLine (x);
}
static void Main()
{
    Foo (8); // an argument of 8. 
             // When you're talking from the outer scope point of view
}

In some human languages (afaik Italian, Russian) synonyms are widely used for these terms.

  • parameter = formal parameter
  • argument = actual parameter

In my university professors use both kind of names.


Parameter is a variable in a function definition
Argument is a value of parameter

<?php

    /* define function */
    function myFunction($parameter1, $parameter2)
    {
        echo "This is value of paramater 1: {$parameter1} <br />";
        echo "This is value of paramater 2: {$parameter2} <br />";
    }

    /* call function with arguments*/
    myFunction(1, 2);

?>

Parameters are the variables received by a function.Hence they are visible in function declaration.They contain the variable name with their data type. Arguments are actual values which are passed to another function. thats why we can see them in function call. They are just values without their datatype


The formal parameters for a function are listed in the function declaration and are used in the body of the function definition. A formal parameter (of any sort) is a kind of blank or placeholder that is filled in with something when the function is called.

An argument is something that is used to fill in a formal parameter. When you write down a function call, the arguments are listed in parentheses after the function name. When the function call is executed, the arguments are plugged in for the formal parameters.

The terms call-by-value and call-by-reference refer to the mechanism that is used in the plugging-in process. In the call-by-value method only the value of the argument is used. In this call-by-value mechanism, the formal parameter is a local variable that is initialized to the value of the corresponding argument. In the call-by-reference mechanism the argument is a variable and the entire variable is used. In the call- by-reference mechanism the argument variable is substituted for the formal parameter so that any change that is made to the formal parameter is actually made to the argument variable.


Parameters are variables that are used to store the data that's passed into a function for the function to use. Arguments are the actual data that's passed into a function when it is invoked:

// x and y are parameters in this function declaration
function add(x, y) {
  // function body
  var sum = x + y;
  return sum; // return statement
}

// 1 and 2 are passed into the function as arguments
var sum = add(1, 2);

I thought it through and realized my previous answer was wrong. Here's a much better definition

{Imagine a carton of eggs: A pack of sausage links: And a maid } These represent elements of a Function needed for preparation called : (use any name: Lets say Cooking is the name of my function).

A Maid is a method .

( You must __call_ or ask this method to make breakfast)(The act of making breakfast is a Function called Cooking)_

Eggs and sausages are Parameters :

(because the number of eggs and the number of sausages you want to eat is __variable_ .)_

Your decision is an Argument :

It represents the __Value_ of the chosen number of eggs and/or sausages you are Cooking ._

{Mnemonic}

_" When you call the maid and ask her to make breakfast, she __argues_ with you about how many eggs and sausages you should eating. She's concerned about your cholesterol" __

( Arguments , then, are the values for the combination of Parameters you have declared and decided to pass to your Function )


It's explained perfectly in Parameter (computer programming) - Wikipedia

Loosely, a parameter is a type, and an argument is an instance.

In the function definition f(x) = x*x the variable x is a parameter; in the function call f(2) the value ``2 is the argument of the function.

And Parameter - Wikipedia

In computer programming, two notions of parameter are commonly used, and are referred to as parameters and arguments—or more formally as a formal parameter and an actual parameter.

For example, in the definition of a function such as

y = f(x) = x + 2,

x is the formal parameter (the parameter) of the defined function.

When the function is evaluated for a given value, as in

f(3): or, y = f(3) = 3 + 2 = 5,

은 IS 실제 파라미터 합니다 ( 인수 정의 된 함수에 의한 평가는); 정의 된 함수 형식 매개 변수대체하는 주어진 값 (실제 값)입니다 . (일반적으로 사용하는 경우 매개 변수인수 라는 용어 가 부주의하게 바뀌어서 잘못 사용될 수 있습니다.)

참고 URL : https://stackoverflow.com/questions/156767/whats-the-difference-between-an-argument-and-a-parameter

반응형