함수 인수를 int ar[] 형식으로 지정하면 배열만 전달 가능한 것이 아니라 포인터를 전달 가능하다는 뜻입니다.
즉, int* ar과 뜻이 같습니다.
void Func(int ar[]) {
}
그리고 [] 안에 숫자를 무엇을 쓰든 상관없이 무조건 똑같은 포인터로 전달되기 때문에 실제로 프로그램에 영향을 끼치지 않습니다.
void Func(int ar[3]) {//int ar[]과 int* ar과 같습니다.
}
그렇지만 암묵적으로 함수에 배열을 전달해야 된다는 것을 표시하기 위해서 이런 표기법을 사용하는 것입니다.
그리고 함수 인수에 배열 포인터를 전달할 수 있는데 마찬가지로 int ar[][3]은 int (*ar)[3] 또는 int ar[(숫자)][3]과 같습니다.
int Func2(int ar[][3]) {
}
void main() {
int ar[2][3];
Func2(ar);
int (*ar2)[3] = ar;
Func2(ar2);
}