#include <iostream>usingnamespace std;constint 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(constint(&b)[MAX][MAX]){// 파라미터를 바꾸게 하고 싶지 않다면,cout<<"func2"<< endl;// const가 좋은 선택입니다.return;}typedefint array_2d_t[MAX][MAX];// 누구나 복잡한 C++ 선언 문법을 100% 아는 건 아니죠.void func3(array_2d_t &c){// 초보자를 배려합시다. 이러면 읽기도 더 쉽고...cout<<"func3"<< endl;return;}typedefconstint 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);return0;}
void(int matrix[MAX][])
void(int matrix[MAX][])
헷갈리신 것 같은데요.
실행 결과: http://ideone.com/C7zg0b
그렇네요. 제가 헷갈렸씁니다.
그렇네요. 제가 헷갈렸씁니다.
사족을 달자면 저는 아래와 같이 쓰는데 질문의 내용을 보아 포인터를 없앤다는게....
아직 눈컴파일은 무리인가 보네요 ㅠㅠ
댓글 달기