함수 호출은 정의된 함수를 실행하도록 하는 것으로 앞에서 함수 호출에 대한 기본적인 문법에 대해서 살펴보았다.
다음 프로그램 코드는 main()
함수에서 sum()
함수의 Greeting()
함수를 호출하고 실제 호출하면서 프로그램의 실행 순서를
표시하고 있다. 그림에서 빨간 화살표의 방향이 프로그램 실행 순서를 나타내고 있다.
인수와 매개 변수는 함수 호출 시 데이터를 주고 받을 때 사용된다. 인수(argument)는 함수를 호출할 때 함수에 전달되는 실제로 전달되는 데이터(값)이고 함수 정의 시 선언한 매개 변수와 일대일로 대응된다. 즉 함수가 호출될 때마다 인수는 매개 변수로 전달된다. 함수를 호출할 때 매개 변수에 전달되는 데이타의 내용에 따라 다음과 같이 구분한다. 함수를 호출할 때 데이터 값을 매개변수에 전달하는 것을 "값에 의한 호출(call by value)" 라고 하고 데이터가 저장된 메모리 주소를 매개 변수에 전달하는 것을 "참조에 의한 호출(call by reference)"라고 한다.
다음 그림은 인수와 매개 변수와의 관계를 보인다.
앞의 코드에서 10, 20, false가 인수에 해당하고 a, b, states 가 매개 변수에 해당한다. 이 때 함수 호출 시 함수에서 선언딘 변수 a, b, state 가 매개 변수이다. 이 코드에서 인수 10은 매개 변수 a 에 전달(대입)되고 인수 20은 매개 변수 b 에 전달(대입)된다. 또한 state 에는 false 값이 전달(대입)된다.
함수를 호출할 때 매개 변수의 개수와 같은 수의 인수가 전달되어야 한다. 인수의 개수와 매개 변수의 갯수가 다른 경우 컴파일 에러가 발생한다. 또한 인수와 매개 변수의 자료형이 서로 일치해야 한다. 예를 들어 매개 변수는 int형으로 선언하였는데 인수의 자료형이 float인 경우 정수로 변환되어 처리가 이루어지게 된다.
후에 학습할 디폴트 매개 변수를 학습하면 매개변수의 개수와 인수의 개수가 같지 않아도 되는 경우도 존재한다.