본문 바로가기
C 언어

c 언어[029] 2차원 배열 형식과 구조 및 출력

by Smart Factory in 2020 2021. 10. 9.
728x90
반응형

안녕하세요. 스마트팩토리입니다. 
c 언어[029]  2차원 배열  형식과 구조 및 출력 에 대해 알아보겠습니다. 

1. 이차원 배열

가. 이차원 배열의 형식과 구조 

 2차원 배열의 형식
- [형식]= 2차원 배열의 선언
-자료형 배열명[행의 개수][열의 개수];

   행의 개수- 2차원 배열의 가로줄의 객수, 행의 번호입니다. 
  열의 개수 - 2차원 배열의  제로줄의 개수, 열의 번호입니다.

 

 

 실제 메모리 저장 순서는 아래와 같습니다. 

 

메모리에 저장되는 순서는 위 처럼 가로로 일렬인 것 처럼 저정이 됩니다. 하지만 우리가 생각할때는 행과 열로 구성된 것처럼 이해해도 됩니다. 이는 배열의 주소를 일렬로 늘여놓은 것과 같기 때문에 구분하여 놓아도 결과적으로 같게 됩니다. 

나. 이차원 배열 예

이차원 배열로 3행 4열로 된 데이터를 구성하였습니다. 

int arr[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} };

이를 출력해 보면 

처음에는 줄바꿈이 있느냐 없느냐 차이입니다. 

출력된 값을 보면 줄바꿈만 해줘도 우리가 행과 열을 생각하는데로 출력을 할 수 있는 것을 볼 수 있습니다. 

#include<stdio.h>

void main() {
int arr[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} };

for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf(" %d", arr[i][j]);
}

}
printf("\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("\t %d", arr[i][j]);
}
printf("\n");
}

}

 

배열값에 해당하는 인덱스를 찍어보면 바로 알 수 있습니다. 

결과적으로 이해를 할때 행과 열로 이해해도 큰 문제가 없다는 것을 알 수 있습니다. 

#include<stdio.h>
void main() {
int arr[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} };

for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf(" %d", arr[i][j]);
}
}
printf("\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("\t %d", arr[i][j]);
}
printf("\n");
}
printf("arr[0][0]: %d\n", arr[0][0]);
printf("arr[0][1]: %d\n", arr[0][1]);
printf("arr[0][2]: %d\n", arr[0][2]);
printf("arr[0][3]: %d\n", arr[0][3]);
printf("arr[1][0]: %d\n", arr[1][0]);
printf("arr[1][1]: %d\n", arr[1][1]);
printf("arr[1][2]: %d\n", arr[1][2]);
printf("arr[1][3]: %d\n", arr[1][3]);
printf("arr[2][0]: %d\n", arr[2][0]);
printf("arr[2][1]: %d\n", arr[2][1]);
printf("arr[2][2]: %d\n", arr[2][2]);
printf("arr[2][3]: %d\n", arr[2][3]);
}

 

728x90
반응형

댓글