배열을 매개변수로 하는 함수 선언 방법 Show 배열을 함수의 매개변수로 사용하기 위해서는 다음과 같이 선언할 수 있습니다.
하나는 일반적인 매개변수 선언과 같이 배열(arr[])로 선언하였고 다른 하나는 포인터 변수(*ptr)로 선언하였습니다. 배열의 값을 함수의 매개변수로 사용하는 예제
배열에 저장된 두 번째 인덱스의 값을 함수로 전달하는 예제입니다. 오직 하나의 값을 받기 때문에 함수의 매개변수는 int a로 선언되었습니다. 배열 자체를 함수의 매개변수로 사용하는 예제참조에 의한 호출(call by reference)과 같이 배열의 메모리상의 주소를 매개변수로 받아 사용합니다. 호출부에서는 배열명을 넘기고 호출된 함수에는 호출부에서 넘어온 배열의 주소를 받습니다. 배열명 자체는 배열의 시작 주소입니다. 변수명이 메모리 주소의 이름인 것과 같이 배열명 자체도 배열이 시작되는 주소를 가리키고 있습니다. 즉 int marks[] 선언되고 초기화되었을 때 marks 자체는 배열의 시작 주소라고 생각하시면 됩니다.
함수의 매개변수를 int score[]와 같이 선언하여 전달된 배열의 주소를 받게 됩니다. 결국, 함수호출 부의 marks 배열과 함수의 score 배열은 같은 배열입니다. 함수에 다차원 배열을 전달하는 예제
함수에서 배열 리턴함수에서 배열을 리턴해야 할 때는 사용 시 주의를 요구합니다. 그 이유는 함수가 종료되면 함수 내에 정의된 배열을 포함한 모든 변수가 사라지기 때문입니다. 간혹가다 배열을 리턴해야할 경우에는 아래의 코드와 같이 배열을 매개변수로 받아 값을 수정하고 배열 자체를 리턴할 수 있습니다. 이렇게 함으로서 함수가 종료된 후에도 배열이 사라지지 않기 때문입니다.
배열을 리턴하므로 함수의 리턴타입은 포인터(int*)로 정의해야 합니다. 참고 문헌 (Ch 64): https://dojang.io/mod/page/view.php?id=562 배열 매개변수 사용하기함수의 입력(매개변수)으로 배열을 사용하기 위해서는 입력(매개변수) 이름 뒤에 []를 붙이거나 매개변수를 포인터로 지정해주면 된다.
예시
입력으로 들어오는 arr[]은 배열의 메모리 주소를 담고있는 포인터이기 때문에, 배열의 크기를 입력으로 넣어 주어야 한다.
매개변수를 포인터로 지정하면 아래와 같다.
이를 이용하면 함수 안에서 배열의 요소를 바꾸는 함수를 작성할 수 있다.
2차원 배열 매개변수 사용하기함수에서 2차원 배열을 매개변수로 사용하려면 매개변수 이름 뒤에 [][가로 크기] 를 붙이고 가로 크기를 지정하거나, 괄호로 묶은 포인터 뒤에 [가로 크기]를 붙인다.
예시 (두 개의 대괄호를 이용한 방법)
예시 (포인터와 대괄호를 이용한 방법) |