개인노트

[C언어] 2차원배열을 함수의 인자로 전달하기 본문

C/문법

[C언어] 2차원배열을 함수의 인자로 전달하기

BillnairK 2017. 7. 6. 09:50

1차원 배열을 함수의 인자로 전달하는 방법은 다음과 같았다.


int * arr; or int arr[];


2차원 배열을 함수의 인자로 전달하는 방법은 다음과 같다.


int (*arr)[3]; or int arr[][3];


 2차원 배열을 함수의 인자로 전달하기 예제.c

#include <stdio.h>

#include "stdlib.h"


void ShowArr2DStyle(int(*arr)[4], int column) {

int i, j;

for (i = 0; i < column; i++) {

for (j = 0; j < 4; j++) {

printf("%d", arr[i][j]);

}

printf("\n");

}

}

int Sum2DArr(int arr[][4], int column) {

int i, j, sum = 0;

for (i = 0; i < column; i++) {

for (j = 0; j < 4; j++) {

sum += arr[i][j];

}

}

return sum;

}


int main(void) {

int arr1[2][4] = { 1,2,3,4,5,6,7,8 };

int arr2[3][4] = { 1,1,1,1,3,3,3,3,5,5,5,5 };


ShowArr2DStyle(arr1, sizeof(arr1) / sizeof(arr1[0]));

ShowArr2DStyle(arr2, sizeof(arr2) / sizeof(arr2[0]));


printf("arr1의 총 합 : %d\n", Sum2DArr(arr1, sizeof(arr1) / sizeof(arr1[0])));

printf("arr2의 총 합 : %d\n", Sum2DArr(arr2, sizeof(arr2) / sizeof(arr2[0])));


system("pause");

}


Comments