#include <iostream>
using namespace std;
const int MAX = 10; // 컴파일 타임 상수여야만 하지요.
// void tyhan(int matrix[MAX][]){ 틀림!
void tyhan(int matrix[][MAX]){ // 첫째 []만 비울 수 있습니다. 그 뒤부터는 채워 줘야 함
cout << "tyhan" << endl; // 고차원 배열의 구현원리를 알면 이해할 수 있죠.
return;
}
void func1(int (&a)[MAX][MAX]){ // 좀더 C++답게 짤 수도 있어요.
cout << "func1" << endl; // 전달하고자 하는 타입의 참조자로 만드는 거죠.
return;
}
void func2(const int (&b)[MAX][MAX]){ // 파라미터를 바꾸게 하고 싶지 않다면,
cout << "func2" << endl; // const가 좋은 선택입니다.
return;
}
typedef int array_2d_t[MAX][MAX]; // 누구나 복잡한 C++ 선언 문법을 100% 아는 건 아니죠.
void func3(array_2d_t &c){ // 초보자를 배려합시다. 이러면 읽기도 더 쉽고...
cout << "func3" << endl;
return;
}
typedef const int const_array_2d_t[MAX][MAX]; // 마찬가지.
void func4(const_array_2d_t &d){
cout << "func4" << endl;
return;
}
int main() {
int arr[MAX][MAX];
tyhan(arr);
func1(arr);
func2(arr);
func3(arr);
func4(arr);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE1BWCA9IDEwOyAvLyDsu7TtjIzsnbwg7YOA7J6EIOyDgeyImOyXrOyVvOunjCDtlZjsp4DsmpQuCgovLyB2b2lkIHR5aGFuKGludCBtYXRyaXhbTUFYXVtdKXsg7YuA66a8IQp2b2lkIHR5aGFuKGludCBtYXRyaXhbXVtNQVhdKXsgLy8g7LKr7Ke4IFtd66eMIOu5hOyauCDsiJgg7J6I7Iq164uI64ukLiDqt7gg65Kk67aA7YSw64qUIOyxhOybjCDspJjslbwg7ZWoCgljb3V0IDw8ICJ0eWhhbiIgPDwgZW5kbDsgLy8g6rOg7LCo7JuQIOuwsOyXtOydmCDqtaztmITsm5Drpqzrpbwg7JWM66m0IOydtO2VtO2VoCDsiJgg7J6I7KOgLgoJcmV0dXJuOwp9Cgp2b2lkIGZ1bmMxKGludCAoJmEpW01BWF1bTUFYXSl7IC8vIOyigOuNlCBDKyvri7Xqsowg7KekIOyImOuPhCDsnojslrTsmpQuCgljb3V0IDw8ICJmdW5jMSIgPDwgZW5kbDsgIC8vIOyghOuLrO2VmOqzoOyekCDtlZjripQg7YOA7J6F7J2YIOywuOyhsOyekOuhnCDrp4zrk5zripQg6rGw7KOgLgoJcmV0dXJuOwp9Cgp2b2lkIGZ1bmMyKGNvbnN0IGludCAoJmIpW01BWF1bTUFYXSl7IC8vIO2MjOudvOuvuO2EsOulvCDrsJTqvrjqsowg7ZWY6rOgIOyLtuyngCDslYrri6TrqbQsCgljb3V0IDw8ICJmdW5jMiIgPDwgZW5kbDsgLy8gY29uc3TqsIAg7KKL7J2AIOyEoO2DneyeheuLiOuLpC4KCXJldHVybjsKfQoKdHlwZWRlZiBpbnQgYXJyYXlfMmRfdFtNQVhdW01BWF07IC8vIOuIhOq1rOuCmCDrs7XsnqHtlZwgQysrIOyEoOyWuCDrrLjrspXsnYQgMTAwJSDslYTripQg6rG0IOyVhOuLiOyjoC4Kdm9pZCBmdW5jMyhhcnJheV8yZF90ICZjKXsgLy8g7LSI67O07J6Q66W8IOuwsOugpO2VqeyLnOuLpC4g7J2065+s66m0IOydveq4sOuPhCDrjZQg7Im96rOgLi4uCgljb3V0IDw8ICJmdW5jMyIgPDwgZW5kbDsKCXJldHVybjsKfQoKdHlwZWRlZiBjb25zdCBpbnQgY29uc3RfYXJyYXlfMmRfdFtNQVhdW01BWF07IC8vIOuniOywrOqwgOyngC4Kdm9pZCBmdW5jNChjb25zdF9hcnJheV8yZF90ICZkKXsKCWNvdXQgPDwgImZ1bmM0IiA8PCBlbmRsOwoJcmV0dXJuOwp9CgppbnQgbWFpbigpIHsKCWludCBhcnJbTUFYXVtNQVhdOwoJdHloYW4oYXJyKTsKCWZ1bmMxKGFycik7CglmdW5jMihhcnIpOwoJZnVuYzMoYXJyKTsKCWZ1bmM0KGFycik7CglyZXR1cm4gMDsKfQ==