Parameter와 Argument의 차이

What’s the difference between an argument and a parameter?

엄밀히 따져 parameter는 ‘매개변수’, argument는 ‘인자’로 번역하지만 특별히 둘의 개념을 나눠서 설명하는 국내 서적은 거의 못 봤던 것 같다.

어쨌든 당장 C언어 교재 중 가장 많은 추천을 받는 KING의 C Programming A Modern Approach만 봐도 parameter와 argument는 구분해서 사용한다.

parameter는 일단 단어 자체가 주는 어감에서 공대 감성이 풍겨서 사전 검색만으로도 대충 뜻을 찾을 수 있지만, argument는 원서를 읽다가도 ‘뭐 이렇게 논쟁거리가 많느냐’고 오독할 수 있을 정도로 ‘논쟁, 주장’등의 의미가 먼저 다가온다.

Parameter(매개변수)는 함수 혹은 메서드를 선언(declare)할 때 정의되는 변수
Argument(인자)는 함수또는 메서드를 호출(call)할 때 함수의 매개변수로 전달하는 값

public void MyMethod(string myParam) { }

...

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

위의 스택오버플로우 링크의 답변에서 든 예시를 그대로 들면
첫줄의 myParam은 parameter, 마지막줄의 myArg1은 argument라는 것.

내가 받은 인상으로는 클래스와 인스턴스의 관계와 비슷한 것 같다. 클래스는 어떤 ‘틀’이고 인스턴스가 그 틀에서 주조된 ‘실재하는 객체’라면, parameter는 함수나 메서드에 어떤 값을 받을지 결정하는 ‘형식’이고 argument는 그 형식에 맞춰 전달하는 ‘실재 값’이니까.

Show your support

Clapping shows how much you appreciated Irrationnelle’s story.