parameters - 차이 - 파라미터 값




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

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

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

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

개요

일반적인 합의는 팀 환경에서이 용어들을 상호 교환 적으로 사용하는 것이 좋습니다. 아마도 정확한 용어를 정의 할 때를 제외하고는; " 공식 인수 / 매개 변수"와 " 실제 인수 / 매개 변수"를 사용하여 모호하지 않게 할 수 있습니다.


Joseph의 Alabahari 서적 "C # in a Nutshell"(C # 7.0, 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
}

몇몇 인간 언어 (afaik 이탈리아어, 러시아어)에서는 동의어가이 용어에 널리 사용됩니다.

  • 매개 변수 = 형식 매개 변수
  • 인수 = 실제 매개 변수

우리 대학교 교수들 모두 두 가지 이름을 사용합니다.


그들은 둘 다 C에서 사용법에 많은 차이가 없으며 두 용어는 실제로 사용됩니다. 주로 인수는 함수와 함께 사용됩니다. 함수 호출 문과 함께 전달 된 값을 인수라고하며, 매개 변수는 함수 정의의 값을 형식 매개 변수로 복사하는 변수입니다.

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; 
}

위의 코드에서 num1num2 는 공식 매개 변수이고 ab 는 실제 인수입니다.


논리적으로 말하자면, 우리는 실제로 같은 것을 말하고 있습니다. 그러나 나는이 딜레마를 해결하는 데 간단한 은유가 도움이 될 것이라고 생각한다.

은유를 다양한 연결점이라고 부를 수 있다면 벽에있는 점을 연결 지점으로 간주 할 수 있습니다. 이 경우 매개 변수와 인수를 다음과 같이 고려할 수 있습니다.

매개 변수 는 다양한 모양을 취할 수있는 플러그 포인트의 소켓입니다. 그러나 특정 유형의 플러그 만이 적합합니다.
인수 는 특정 장비를 활성화하기 위해 플러그 포인트 / 소켓에 플러그인되는 실제 플러그입니다.


단순한:

  • P ARAMETER → P LACEHOLDER (이는 함수 이름 지정에 속하며 함수 본문에서 사용됨을 의미합니다)
  • RGUMENT → A CTUAL VALUE (이것은 함수 호출에 의해 전달 된 실제 값을 의미 함)

당신이 항공사라고 가정 해 봅시다. 당신은 비행기를 만든다. 당신은 좌석을 설치합니다. 그런 다음 비행기를 승객으로 채우고 어딘가에 보냅니다. 승객 (또는 약간의 시공간적으로 변경된 버전)이 내려집니다. 다음 날에는 동일한 비행기와 같은 좌석을 다시 사용하지만 이번에는 다른 승객과 함께 사용합니다.

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

매개 변수는 좌석입니다.

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


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

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

}

parameter 는 매개 변수이며, 값은 "argument" 입니다.


매개 변수는 함수가받는 변수입니다. 함수 선언에 표시됩니다. 변수 이름에 데이터 유형이 포함되어 있습니다. 인수는 다른 함수에 전달되는 실제 값입니다. 그게 우리가 함수 호출에서 그들을 볼 수있는 이유입니다. 그들은 데이터 유형이없는 값입니다.



아니면 더 간단하게 ...

인수!

매개 변수를 밖으로!


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

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

함수 인수 는 함수에 전달 된 실제 값입니다.


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

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;
}

이 용어는 다소 상호 교환 가능합니다. 다른 답변에 설명 된 구별은 함수 본문 내부에서 사용되는 이름에 대한 형식 매개 변수 와 호출 사이트에서 제공되는 값에 대한 매개 변수 ( 공식 인수인수 도 일반적입니다)라는 용어로보다 적절히 표현됩니다.

또한 수학에서 인수 라는 용어는 훨씬 더 일반적이며 매개 변수는 일반적으로 상당히 다른 것을 의미합니다 ( 매개 변수 방정식의 매개 변수 는 본질적으로 둘 이상의 함수에 대한 인수 임).


자바에서 메소드 (함수)를 만들 때,이 메소드는 다음과 같다.

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

괄호 안에는 이것들이 매개 변수이며, 우리가이 함수를 호출 할 때이 인자의 값을 전달한다.


좋아, 사실이되자. 모든 의도와 목적을 위해 사실상 똑같은 .......... 괜찮지 만, 페달트에게는 기술적 인 차이가있을 수 있습니다.

"매개 변수"는 매우 일반적으로 광범위하지만 argumet은 매우 특정한 것입니다. 감사합니다. 정말 도움이됩니다. 흠 : 예를 들어 보겠습니다.

간단한 설명

예를 들어 보겠습니다. 저는 기계가 있습니다. 작동 원리는 다음과 같습니다. 한 쪽 끝의 물건을 물건에 넣고 다른 쪽 끝에 물건을 넣으면 새로운 "물건"이 나오게됩니다. 이 기계에는 무엇이 들어 있습니까? 아무것도. 나올거야? 들어가는 것에 대한 세련된 버전입니다. 예를 들어이 기계의 한쪽 끝에 밀가루와 설탕을 넣을 수 있으며 다른 하나는 케이크입니다. 당신은 아이디어를 얻습니다.

이제 다른 기계는 다른 규칙을 가지고 있습니다. 하나의 특정 기계는 가솔린 (무연)만을 입력으로 받아 들일 수 있습니다. 이러한 기계는 가솔린 유형의 매개 변수를 허용한다고 말할 수 있습니다.

예제

그렇다면 논쟁은 무엇입니까? 인수는 컴퓨터에 입력되는 내용의 구체적이고 구체적인 예입니다. 내 컴퓨터가 사람을 입력으로 사용한다고 가정하면 ( 사람들은이 컴퓨터의 매개 변수가 될 것입니다. )이 컴퓨터가 그 사람들을 사람이 아닌 사람들로 변환한다고 가정합시다. 논쟁은 실제로 기계에 투입된 특정 사람이 될 것입니다. 예를 들어 조지 부시가 기계에 투입된다면 논쟁은 조지 부시가 될 것이다. 만약 Kim Kardiashian이 그곳에 있었다면 그녀 역시 논쟁이 될 것입니다. 따라서 매개 변수는 추상적 인 개념으로 사람이 될 수 있습니다. 그러나 인수는 항상 컴퓨터에 입력되는 특정 이름을 가진 특정 사람이됩니다.

하나 더보기

예를 들어 방법 (즉, 입력을 출력으로 바꾸는 특정 기계)은 정수를 매개 변수로 사용할 수 있습니다. 정수 5가 함수에 "전달"되었다고 가정 해 봅시다 (즉, 숫자 5를 기계에 넣었다고 가정 해 봅시다). 이 경우 정수 "5"가 인수가되며이 메서드에서 허용되는 "매개 변수"는 정수 유형입니다.

그것이 차이점입니다. 단순한.

이게 도움이 되길 바란다. 당신이 혼란스러워하는 경우 그냥 코멘트와 나는 그것을 시도하고 해결할 것입니다.


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

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


함수의 형식 매개 변수는 함수 선언에 나열되며 함수 정의의 본문에 사용됩니다. 형식적인 매개 변수 (모든 종류의)는 함수가 호출 될 때 무언가로 채워지는 공백 또는 자리 표시 자의 일종입니다.

인수 는 형식 매개 변수를 채우는 데 사용됩니다. 함수 호출을 적어두면 인수는 함수 이름 뒤의 괄호 안에 나열됩니다. 함수 호출이 실행되면 인수는 형식 매개 변수에 연결됩니다.

값 별 호출참조 호출 이라는 용어는 플러그인 프로세스에서 사용되는 메커니즘을 의미합니다. value-by-value 메서드에서는 인수의 값만 사용됩니다. 이 call-by-value 메커니즘에서 형식 매개 변수는 해당 인수의 값으로 초기화되는 로컬 변수입니다. call-by-reference 메커니즘에서 인수는 변수이고 전체 변수가 사용됩니다. call-by-reference 메커니즘에서 인수 변수는 형식 매개 변수로 대체되어 형식 매개 변수에 대한 모든 변경 사항이 실제로 인수 변수에 적용됩니다.


매개 변수 (컴퓨터 프로그래밍) 에서 완벽하게 설명되었습니다 - 위키 백과

느슨하게, 매개 변수는 유형이고 인수는 인스턴스입니다.

함수 정의 f(x) = x*x 에서 변수 x 는 매개 변수입니다. 함수 호출 f(2) 에서 값``2는 함수의 인수입니다.

매개 변수 - 위키 백과

컴퓨터 프로그래밍 에서 parameter 두 가지 개념이 일반적으로 사용되며 매개 변수 및 인수로 또는 공식적으로는 매개 변수실제 매개 변수 로 언급됩니다.

예를 들어, 다음과 같은 함수의 정의에서

y = f(x) = x + 2,

x 는 정의 된 함수의 형식적 매개 변수 ( 매개 변수 )입니다.

함수가 주어진 값에 대해 평가 될 때,

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

정의 된 함수에 의한 평가를위한 실제 매개 변수 ( 인수 )입니다. 그것은 정의 된 함수의 형식 매개 변수 로 대체되는 주어진 값 (실제 값)입니다. 캐주얼 사용에서는 매개 변수인수 가 부주의하게 상호 교환되어 잘못 사용될 수 있습니다.


매개 변수 및 인수

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

  1. 함수의 형식 매개 변수 는 함수 선언에 나열되며 함수 정의의 본문에 사용됩니다. 형식적인 매개 변수 (모든 종류의)는 함수가 호출 될 때 무언가로 채워지는 공백 또는 자리 표시 자의 일종입니다.
  2. 인수 는 형식 매개 변수를 채우는 데 사용됩니다. 함수 호출을 적어두면 인수는 함수 이름 뒤의 괄호 안에 나열됩니다. 함수 호출이 실행되면 인수는 형식 매개 변수에 연결됩니다.
  3. 값 별 호출참조 호출 이라는 용어는 플러그인 프로세스에서 사용되는 메커니즘을 의미합니다. value-by-value 메서드에서는 인수의 값만 사용됩니다. 이 call-by-value 메커니즘에서 형식 매개 변수는 해당 인수의 값으로 초기화되는 로컬 변수입니다. call-by-reference 메커니즘에서 인수는 변수이고 전체 변수가 사용됩니다. call-by-reference 메커니즘에서 인수 변수는 형식 매개 변수로 대체되어 형식 매개 변수에 대한 모든 변경 사항이 실제로 인수 변수에 적용됩니다.

출처 : Absolute C ++, Walter Savitch

그건,


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

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


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

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