1번의 경우처럼 배열을 함수의 인자로 넘기려 하면 type decay가 발생합니다. 간단하게 설명하면 최상위 첨자를 잃고 포인터가 됩니다. 1번의 인자의 실제 타입은 (int *)[4] 입니다.
2번의 경우는 배열의 레퍼런스를 함수의 인자로 넘기고 있습니다. 이 경우는 배열의 레퍼런스를 그대로 전달받고 type도 보존됩니다.
대부분의 C++ 구현체에서 두 경우 모두 실제로 주고받는 것은 배열의 메모리 주소 입니다. 따라서 속도 차이는 없을 가능성이 큽니다.
irnd04 5년 전
2차원 정적배열을 인자로 받을때
아래 두가지 방법의 차이는 무엇인가요 ?
그리고 속도차이도 알고싶습니다.
궁금합니다.