작성
·
231
0
함수 선언시( int ar[][],int row,int col )
이런식으로 받는다면 배열에 대해서 col까지 고려안해도 되니까 훨씬 일반적인 것 아닌가요?? 이런식으로 못하는 이유가 있나요??
1차원 배열을 함수로 받을때엔
(int ar[], int row) 이런식으로 받았는데 저렇게 받으면 안되는 이유가 있나요??
답변 1
0
안녕하세요 :)
강의에서 사용된
int sum2d_1(int ar[ROWS][COLS]);
혹은
int sum2d_2(int ar[][COLS], int row);
를 아래와 같이 선언해도 문제 없지 않냐는게 질문이신 것 같습니다.
int sum2d( int ar[][],int row,int col )
강의에서 언급했듯이,
컴파일러는 배열의 첫번째 요소 (위 예시에서는 ROW)을 무시합니다.
(그렇기에 생략이 가능합니다)
그리고 나머지 요소(위 예시에서는 COL)는 꼭 적어주어야 합니다.
만일 아래와 같이 전달한다면 int ar[][]가 얼만큼의 크기를 할당받아야 할지
컴파일러 입장에서는 불명확하겠죠.
int sum2d( int ar[][],int row,int col )
답변이 되었기 바랍니다.
감사합니다!
감사합니다