Monday, November 06, 2006
2차원 배열, 함수 인수(파라미터)로 전달: 2-Dimensional Array, Pass to a Function
배열을 함수의 파라미터로 넘겨주면 배열이 통째로 카피되어 넘어가는 것이 아니라, 배열의 가장 첫번째 요소의 주소만 넘어갑니다. 그렇기에 결국 자동으로 포인터로 전달됩니다.
파일명: 0.cpp
출력 결과:
다음과 같이 좌표의 범위를 좁혀 주면
test(foo, 3, 3);
이렇게, 배열의 모든 요소가 아닌, 지정된 범위만 출력됩니다.
▶▶ C언어] 2차원 배열 만들기, 초기화, 출력; Two Dimensional Array
▶▶ C언어] 배열 포인터를 함수의 인수(파라미터)로 전달; Array Pass to a Function
C언어] 이차원 정수 배열, 함수에 전달 예제
파일명: 0.cpp
#include <stdio.h>
// 상수를 정의해야 함
#define ROWS 5
#define COLS 4
void test(int array[][COLS], int rows, int cols);
int main(void) {
// 2차원 정수 배열 foo의 선언과 초기화
int foo[ROWS][COLS] = {
{ 662, 7, 4, 74 },
{ 8, 396, 299, 95 },
{ 66, 73, 86, 0 },
{ 116, 26, 586, 42 },
{ 84, 7, 41, 11 }
};
test(foo, ROWS, COLS);
puts(""); // 줄바꿈
return 0;
}
void test(int array[][COLS], int rows, int cols) {
for (int i = 0; i < rows; i++) { // 2차원 배열의 요소들 하나씩 출력
puts(""); // 줄바꿈
for (int j = 0; j < cols; j++) {
printf("%d ", array[i][j]);
}
}
}
// 상수를 정의해야 함
#define ROWS 5
#define COLS 4
void test(int array[][COLS], int rows, int cols);
int main(void) {
// 2차원 정수 배열 foo의 선언과 초기화
int foo[ROWS][COLS] = {
{ 662, 7, 4, 74 },
{ 8, 396, 299, 95 },
{ 66, 73, 86, 0 },
{ 116, 26, 586, 42 },
{ 84, 7, 41, 11 }
};
test(foo, ROWS, COLS);
puts(""); // 줄바꿈
return 0;
}
void test(int array[][COLS], int rows, int cols) {
for (int i = 0; i < rows; i++) { // 2차원 배열의 요소들 하나씩 출력
puts(""); // 줄바꿈
for (int j = 0; j < cols; j++) {
printf("%d ", array[i][j]);
}
}
}
출력 결과:
662 7 4 74
8 396 299 95
66 73 86 0
116 26 586 42
84 7 41 11
8 396 299 95
66 73 86 0
116 26 586 42
84 7 41 11
다음과 같이 좌표의 범위를 좁혀 주면
test(foo, 3, 3);
662 7 4
8 396 299
66 73 86
8 396 299
66 73 86
이렇게, 배열의 모든 요소가 아닌, 지정된 범위만 출력됩니다.
▶▶ C언어] 2차원 배열 만들기, 초기화, 출력; Two Dimensional Array
▶▶ C언어] 배열 포인터를 함수의 인수(파라미터)로 전달; Array Pass to a Function
tag: cpp
C언어 | C/C++ (Visual C++)
<< Home