문제

이 질문은 이미 여기에 답이 있습니다.

나는 종종 '인수'와 '매개 변수'라는 용어가 어떻게 사용되는지 혼란스러워합니다. 그들은 프로그래밍 세계에서 상호 교환 적으로 사용되는 것 같습니다.

사용을위한 올바른 협약은 무엇입니까?

도움이 되었습니까?

해결책

매개 변수는 함수에 의해 입력으로 정의 된 것들이며, 인수는 매개 변수로 전달되는 것입니다.

void foo(int bar) { ... }

foo(baz);

이 예에서 bar 매개 변수입니다 foo. baz 전달 된 주장입니다 foo.

다른 팁

매개 변수 함수 선언의 변수입니다.

functionName(parameter) {
    // do something
}


an 논쟁 이 변수의 실제 값은 함수로 전달됩니다.

functionName(argument);

user1515422의 경우 매개 변수와 인수의 차이를 보여주는 매우 구체적인 예입니다.

이 기능을 고려하십시오 :

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

그것은 두 가지가 있습니다 매개 변수: numerator 그리고 denominator, 정의 된 경우 설정합니다. 정의되면 함수의 매개 변수가 고정되어 변경되지 않습니다.

이제 해당 기능의 호출을 고려하십시오.

int result = divide(8, 4);

이 경우 8 그리고 4 입니다 논쟁 기능으로 전달되었습니다. 그만큼 numerator 매개 변수는 인수의 값으로 설정됩니다 8, 그리고 denominator 설정되었습니다 4. 그런 다음 인수 값으로 설정된 매개 변수로 기능을 평가합니다. 프로세스를 다음과 같은 것으로 생각할 수 있습니다.

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

매개 변수와 인수의 차이는 변수와 그 값의 차이와 유사합니다. 내가 쓰면 int x = 5;, 변수는입니다 x 그리고 가치는입니다 5. "X는 5"라고 말하는 것이 자연스럽고, "변수 X의 값 5를 가지기 때문에"이기 때문에 자연스럽게 발생할 수 있지만, 그 차이가 분명하기를 바랍니다.

그게 사물을 분명히합니까?

논쟁은 서브 루틴을 호출 할 때 가지고있는 것입니다. 매개 변수는 서브 루틴 내부에서 액세스하는 것입니다.

argle(foo, bar);

foo 그리고 bar 논쟁입니다.

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

args 매개 변수입니다.

좋은 섹션이 있습니다 매개 변수 이 주제에 대한 Wikipedia 기사.

요컨대 - 매개 변수 공식 이름은 함수로 정의됩니다 논쟁 실제 값 (예 : 5) 또는 변수 (예 : 변수)가 기능으로 전달됩니다.

Wikipedia는 권위있는 출처는 아니지만 괜찮은 일을합니다. 용어를 설명합니다.

매개 변수는 객체의 인스턴스에 어떤 클래스가 있는지 논쟁하는 것이라고 말할 수 있다고 생각합니다.

다음과 같은 기능을 정의 할 때

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

함수를 정의 할 때 매개 변수를 설정합니다. 기능을 다음과 같이 호출 할 때 :

MyFunction('argument1', 'argument2');

당신은 당신이 전달한 인수에 매개 변수의 값을 설정합니다. 논쟁은 당신이 그것을 부를 때 의문에 처한 것입니다. 도움이되기를 바랍니다.

단순히 큰 차이가 없습니다. 우리가 이것에 깊이 들어가면 우리는 diff를 식별 할 수 있습니다.

원래 매개 변수 우리가 통과하는 데이터 유형을 정의합니다. 논쟁 통과하는 실제 데이터/변수를 정의합니다.

매개 변수 예 :-

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

대부분의 경우 절차에는 호출 된 상황에 대한 정보가 필요합니다. 반복 또는 공유 작업을 수행하는 절차는 각 호출마다 다른 정보를 사용합니다. 이 정보는 변수, 상수 및 절차를 호출 할 때 절차에 전달하는 표현식으로 구성됩니다.

이 정보를 절차에 전달하기 위해 절차는 매개 변수를 정의하고 호출 코드는 해당 매개 변수에 인수를 전달합니다. 매개 변수를 주차장으로 생각하고 논쟁을 자동차로 생각할 수 있습니다. 다른 자동차가 다른 시간에 주차장에 주차 할 수있는 것처럼, 호출 코드는 절차를 호출 할 때마다 동일한 매개 변수에 다른 인수를 전달할 수 있습니다.

매개 변수

매개 변수는 절차가 호출 할 때 전달되는 값을 나타냅니다. 절차의 선언은 매개 변수를 정의합니다.

정의 할 때 a 기능 또는 하위 절차, 당신은 절차 이름 바로 뒤에 괄호 안에 매개 변수 목록을 지정합니다. 각 매개 변수에 대해 이름, 데이터 유형 및 전달 메커니즘 (Byval 또는 ByRef)을 지정합니다. 또한 매개 변수가 선택 사항임을 나타낼 수 있습니다. 즉, 호출 코드가 값을 전달할 필요가 없습니다.

각 매개 변수의 이름은 프로 시저 내에서 로컬 변수 역할을합니다. 다른 변수를 사용하는 것과 같은 방식으로 매개 변수 이름을 사용합니다.

논쟁

인수는 절차를 호출 할 때 프로 시저 매개 변수로 전달하는 값을 나타냅니다. 호출 코드는 절차를 호출 할 때 인수를 제공합니다.

당신이 전화 할 때 기능 또는 하위 절차, 당신은 절차 이름 바로 뒤에 괄호 안에 인수 목록을 포함합니다. 각 인수는 목록에서 동일한 위치의 매개 변수에 해당합니다.

매개 변수 정의와 달리 인수에는 이름이 없습니다. 각 인수는 표현식으로, 변수, 상수 및 리터럴이 0 개 이상인 표현입니다. 평가 된 표현식의 데이터 유형은 일반적으로 해당 매개 변수에 대해 정의 된 데이터 유형과 일치해야하며, 어쨌든 매개 변수 유형으로 변환 할 수 있어야합니다.

실제로 매개 변수와 인수는 서로 다른 유형의 매개 변수입니다. 사람들은

1) 공식 매개 변수 - 변수는 함수/서브 루틴 정의에 나타납니다.

예를 들어. (자바에서)

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

여기서 정수와 S2는 공식적인 매개 변수 또는 느슨하게 말하면 매개 변수입니다.

2) 실제 매개 변수 또는 인수 - 변수는

이미 정의 된 서브 루틴

예를 들어. (Java에서) 함수 "foo"가 객체 "testobject"에 상주한다고 가정 해 봅시다.

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

따라서 함수 정의의 변수는 공식 매개 변수 또는 단순히 매개 변수 및 변수라고하며 호출 방법을 실제 매개 변수 또는 인수라고합니다. 도움이되기를 바랍니다.

기본 대수처럼 생각하십시오. X는 작성 해야하는 매개 변수이며, 그 안에 배치하는 숫자는 인수입니다. 따라서 x+2와 같은 방정식이있는 경우 X는 매개 변수이며 x로 변경 한 숫자는 인수로 알려지게됩니다. 따라서 해당 방정식을 사용하면 x에 1을 보충하면 1+2가됩니다. 즉, 1은 X의 매개 변수에 제공되는 인수임을 의미합니다.

마찬가지로, dosomething ( "this")과 같은 함수가있는 경우 정의는 Dosomething (String ParameterName)이지만 "this"는 매개 변수에 제공되는 실제 인수가 여기에서 ParameterName이라는 이름입니다.

가장 간단한 방법에서, 매개 변수는 인수가 채워지는 것이며, 인수는 해당 매개 변수에 의해 허용되는 여러 가지 일 수 있습니다.

따라서 위의 x+1 방정식과 같이 많은 유효한 인수를 가질 수있는 하나의 매개 변수를 가질 수 있기 때문에 매개 변수와 인수 사이의 다중 관계입니다. X는 알려진 숫자 일 수 있으며 모두 유효합니다.

변수는 스토리지 위치 및 데이터, 값을 포함하는 관련 기호 이름 (식별자)입니다.

매개 변수는 함수로 전달되는 변수입니다.

인수는 데이터 (값)가 함수로 전달됩니다.

$variable = 'data/value';

function first($variable){ ... }

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

기능에서 먼저 매개 변수를 전달합니다.

기능 두 번째와 세 번째 기능에서 우리는 인수를 전달하고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top