형식인수로 다차원 배열이 사용되는 경우

다차원 배열이 형식인수로 사용되는 경우에는 첫 번째 색인을 생략할 수 있다. 그러나 두 번째 색인부터는 모두 명시해 주어야 한다. 이것은 배열크기를 컴파일러에게 알려 주어야 하기 때문이다. 3*3 행렬을 2차원 배열로 구성햇을 때 대각선의 합 (1,1)+(2,2)+(3,3)을 구하는 프로그램의 경우를 살펴보자.

행렬의 대각선의 합을 구하는 프로그램

#include <stdio.h>

int sum_matrix (int m[][3]);

int main ()
{
       int sum;
       int mat[3][3] = {{ 13,23,15},{11,8,25},{17,14,21}};;
       
       sum = sum_matrix(mat);
       printf("Answer : %d\n", sum);
       return 0;
 }

int sum_matrix (int m[][3])
{
   int i;

   i  = mat [0][0] + mat[1][1] + mat[2][2];
   return i;
}

 

mparray04.png

설명

형식 인수 int mat[][3]에서와 같이 첫 번째 색인은 생략되지만, 두 번재 색인부터는 명시한다. 3차원 배열에서 형식인수 표기의 예는 다음과 같다.

int sum (int m[][7][4])