본문 바로가기
C언어

세이버의 C언어 강의 24강_ 배열이란 무엇인가_Part2(다차원 배열)

by 비원(Be one) 2019. 6. 12.
반응형

여러분 안녕하세요. 세이버입니다.

 

지난 강에서 배운 배열이 1차원적인 배열이었다면, 이번 강에서는 다차원 배열을 소개해드리고자 합니다.

배열에 대한 개념이 없으신 분은 지난 강을 보고 오시는 것을 추천드립니다.

 

세이버의 C언어 강의 23강_ 배열이란 무엇인가 : https://poci.tistory.com/39

 

세이버의 C언어 강의 23강_ 배열이란 무엇인가

여러분 안녕하세요. 세이버입니다. 이번 강에서는 배열을 소개하고자 합니다. 배열을 사용하면 복잡한 프로그램을 조금 더 간단하게 바꿀 수 있으니 숙지하시면 도움이 될 겁니다. 1. 배열이란 무엇인가 배열이란..

poci.tistory.com


1. 다차원 배열이란 무엇인가

지난 강에서 배운 배열은 모두 1차원적이었습니다. 수학으로 예를 들면 직선과 같은 거라고 볼 수 있습니다.

직선이 모이면 면이 되듯이, 배열도 차원이 높아질 수 있습니다.

 

배열의 차원은 [ ]의 개수로 구분됩니다.

array[3]은 1차원 배열이고, array2[5][2]는 2차원 배열입니다. array3[1][2][3]은 3차원 배열이 되는 거죠.

배열의 차원은 무한대지만, 편의를 위해서 이번 강에서는 2차원 배열만 다루겠습니다.

 

int a[7]을 선언했을 때는

이렇게 직선적인 모양이라면,

int a[2][3]을 선언했을 때는

위와 같이 행렬의 모양으로 공간이 생긴다고 보면 이해하기 쉬울 겁니다.

 

 

2. 다차원 배열의 선언법

다차원 배열을 선언하는 방법은 1차원 배열의 선언법과 같습니다.

 


다차원 배열 선언법


 

다차원 배열도 1차원 배열과 마찬가지로  타입과 이름, 길이를 명시해줘야 합니다.

또한, 다차원 배열 역시  배열이 시작하는 수는 1이 아니라 0이라는 것 명시하시길 바랍니다.

 

 

3. 다차원 배열의 초기화

다차원 배열은 1차원 배열보다 공간이 많기 때문에 일일이 값을 대입하기에는 너무 귀찮습니다.

그렇기에 다차원 배열의 초기화는 알아두시는 게 좋습니다.

 

다차원 배열도 1차원 배열과 같이 중괄호를 이용해서 초기화를 합니다.

그러나 초기화를 하는 방식이 두 가지로 나뉩니다.

 

첫 번째로 기본적인 초기화입니다.

 

 

위 코드와 같이 중괄호를 하나만 이용한 초기화가 기본적인 초기화입니다.

a[0][0]부터 차례로 설정된 값이 대입되는 것을 확인할 수 있습니다.

또한, 초기화 값이 설정되지 않은 공간은 0이 대입됩니다. 그래서 a[1][1], a[1][2] 부분의 값이 0으로 출력되는 것입니다.

 

두 번째는 행별로 초기화하는 방법입니다.

 

 

중괄호 안에 중괄호를 넣는 방법으로 행별로 초기화를 할 수 있습니다.

{1, 2}는 1행인 a[0][0], a[0][1], a[0][2]가 대입되는 값입니다. a[0][2]에 대입되는 값이 설정되어 있지 않기에 0이 대입됩니다. 

{3}은 2행인 a[1][0], a[1][1], a[1][2]가 대입되는 값입니다. a[1][1], a[1][2]에 대입되는 값이 설정되어 있지 않기에 0이 대입됩니다. 

 

위 두 가지 방법으로 다차원 배열에 값을 대입할 수 있습니다.

 

지난 강에서 1차원 배열을 소개해드릴 때, 초기화를 하면 배열의 길이를 생략할 수 있다고 했습니다.

다차원 배열 역시 초기화를 하면 배열의 길이를 생략할 수 있습니다.

단, 행의 길이만 생략할 수 있습니다.

 

행과 열의 길이를 모두 넣지 않거나, 행의 길이만 넣으면 오류가 발생하기에 주의가 필요합니다.

 

또한, 1차원 배열과 마찬가지로 선언과 초기화가 따로 이루어지면 안 된다는 것 잊지 마시길 바랍니다.


이번 강의는 여기까지입니다.

 

오늘도 수고하셨습니다.

 


정리

- 다차원 배열 : [ ]가 여러 개인 배열, [ ]의 개수로 몇 차원 배열인지 구분된다.

- 다차원 배열 선언 시 필요한 것 : 배열의 타입, 배열의 이름, 배열의 길이

- 다차원 배열은 중괄호를 이용해 초기화가 가능하다.

- 중괄호를 한 번만 사용하는 방법, 중괄호를 여러 번 사용해서 행별로 초기화하는 방법으로 나뉜다.

- 초기화를 하지 않은 부분은 0이 대입된다.

- 초기화를 할 때 데이터의 개수가 명확하면 다차원 배열의 행의 길이를 생략할 수 있다.


강의가 유익하셨거나 마음에 드셨으면 구독과 좋아요, 댓글 부탁드립니다.

궁금하신 점이나 질문은 댓글이나 메일 남겨주세요.

 

poci5003@gmail.com

 

 

 

 

 

반응형