인자값과 매개변수 차이점

KosMos·2022년 9월 9일
0
post-thumbnail

인자(Argument) 는 어떤 함수를 호출시에 전달 돼는 값을 말하고
매개 형식 변수(Parameter) 는 그 전달된 인자를 받아 들이는 변수다.

여기서 포인트는 인자 = 값, 매개 형식 변수 말 그대로 변수라는 점이다.

**예를들면)
//parameter = 매개변수
public String message(String parameter ) {
String result = parameter;
return result;
}
public static void main(String[] args) {
Test2 test2 = new Test2();
test2.message("인자값");
}

여기서 인자는 message라는 함수를 호출할때 전달돼는 "인자값" 이라는 것이고.
message 함수 구현부의 헤더부 String Parameter가 매개 형식 변수이다.

호출 스택(Activation Record)란?

함수를 호출 할 시 그에 대한 정보 유지 및 관리 용도로 사용돼는 일종의 자료구조다.

프로그램이 실행되면 CPU가 PC (Program Counter : 현재 실행할 지점의 코드를 가르키는 역활) 을 이용해 코드를 훑고 내려가는데 이 때 함수 호출 부를 만났다면,

호출된 함수의 정보를 유지하기 위해 스택 공간에 메모리를 할당하는데 그 크기는 그 함수의 매개 변수와 함수 블록 내에서 선언된 지역 변수의 전체 크기에 의해 결정된다.

그 밖에 복귀 주소 (Return Address : 호출된 함수가 종료될 시 실행 흐름이 돌아가야할 주소) 등이 이 호출스택에 들어간다.

그런 다음, 함수의 인자가 이미 앞서 할당됐던 매개 변수에 대입된다.

  • 매개 변수에 인자가 어떤 순서로 대입돼는지는 호출 규약에 따른다.

0개의 댓글