Monday, November 06, 2006
C언어] 배열 포인터를 함수의 인수(파라미터)로 전달; Array Pass to a Function
1차원 배열을 다른 함수로 전달할 때에는 다음과 같은 방법들이 있습니다. 대부분 맨 마지막의 방법을 쓰면 됩니다.
파일명: 0.cpp
test()함수에서, index 인수를 배열 요소의 개수만큼 지정하면 배열 전체가 출력되고, 예를 들어 2를 입력하면 [0]~[1]번 요소만 출력됩니다.
▶▶ 2차원 배열, 함수 인수(파라미터)로 전달: 2-Dimensional Array, Pass to a Function
일차원 정수 배열을 함수로 전달 예제
파일명: 0.cpp
#include <stdio.h>
void test(int* array, int index);
int main(void) {
int array[3] = { 111, 222, 333 };
// *** 포인터 변수 만들어서 ***
// 포인터 변수인 ptr 에, array 라는 배열의 첫번째 요소의 번지가 대입
int* ptr = array;
// int* ptr = &array[0]; // 이렇게 해도 똑같음
test(ptr, 3); // test() 함수에, 배열 포인터와, 요소 개수 전달
// 포인터 변수 ptr 을 만들지 않고 그냥
// test(&array[0], 3);
// 이렇게 직접 첫번째 요소의 주소를 넘겨주어도 됨
// *** 가장 간단한 방법 ***
// 배열을 함수의 인수로 넘기면 항상 첫번째 요소의 주소만 넘어가므로
// test(array, 3);
// 이렇게 해주어도 됩니다. 즉, 배열의 이름은, 배열 첫번째 요소의 번지입니다.
return 0;
}
void test(int* array, int index) {
for (int i = 0; i < index; i++)
printf("[%d] = %d\n", i, array[i]);
}
/* 출력 결과:
[0] = 111
[1] = 222
[2] = 333
*/
void test(int* array, int index);
int main(void) {
int array[3] = { 111, 222, 333 };
// *** 포인터 변수 만들어서 ***
// 포인터 변수인 ptr 에, array 라는 배열의 첫번째 요소의 번지가 대입
int* ptr = array;
// int* ptr = &array[0]; // 이렇게 해도 똑같음
test(ptr, 3); // test() 함수에, 배열 포인터와, 요소 개수 전달
// 포인터 변수 ptr 을 만들지 않고 그냥
// test(&array[0], 3);
// 이렇게 직접 첫번째 요소의 주소를 넘겨주어도 됨
// *** 가장 간단한 방법 ***
// 배열을 함수의 인수로 넘기면 항상 첫번째 요소의 주소만 넘어가므로
// test(array, 3);
// 이렇게 해주어도 됩니다. 즉, 배열의 이름은, 배열 첫번째 요소의 번지입니다.
return 0;
}
void test(int* array, int index) {
for (int i = 0; i < index; i++)
printf("[%d] = %d\n", i, array[i]);
}
/* 출력 결과:
[0] = 111
[1] = 222
[2] = 333
*/
test()함수에서, index 인수를 배열 요소의 개수만큼 지정하면 배열 전체가 출력되고, 예를 들어 2를 입력하면 [0]~[1]번 요소만 출력됩니다.
▶▶ 2차원 배열, 함수 인수(파라미터)로 전달: 2-Dimensional Array, Pass to a Function
tag: cpp
C언어 | C/C++ (Visual C++)
<< Home