본문 바로가기

전자 공학/C언어 C++

[C언어 독학하기] 14. 다차원 배열, 초기화

반응형

 

 

안녕하세요. 취업한 공대누나입니다.

오늘은 다차원 배열의 개념에 대해 공부해보도록 하겠습니다.

지난 번에 공부했던 배열은 복수의 동일한 자료형의 변수를 하나로 묶은 것이었습니다.

다차원 배열은 2차원 배열 이상을 의미합니다.

 

1. 2차원 배열과 3차원 배열

 

그림과 같이 int a[3][2];와 같이 선언했다고 생각해보겠습니다.

그러면 다음과 같이 int 형 공간이 6개 생기는 것입니다.

각각 원하는 것을 대입하면 됩니다.

 

 

그렇다면 3차원 배열은 어떻게 생기게 될까요?

int a[2][2][2][2];와 같이 선언했다고 생각해봅시다.

그렇게 되면

a[0][0][0], a[0][0][1],

a[0][1][0], a[0][1][1],

a[0][2][0], a[0][2][1]

이렇게 총 6개의 공간이 생기는 것입니다.

 

 

 

2. 2차원 배열 초기화

 

2차원 배열, 3차원 배열등을 초기화시킬 때에는 아래와 같이 합니다.

중괄호와 콤마의 위치를 잘 기억해주세요.

 

오른쪽 화면에 1,2,3,4,5,6이 잘 출력된 것을 볼 수 있습니다.

 

 

배열의 요소들을 모두 0으로 초기화 시키고 싶으면 어떻게 해야할까요?

아래와 같이 {0,}를 해주면 됩니다.

이렇게 하면 위와 같이 일일이 0을 입력하지 않아도 됩니다.

 

 

콤마를 하지 않고 소스 코드를 돌려보았는데 0으로 초기화가 된 것 같습니다.

요즘 비쥬얼 스튜디오는 콤마를 하지 않아도 자동으로 초기화를 해주는 듯 합니다..

(확실하지 않습니다.)

그래도 가장 베이직한 방법은 콤마를 써주는것이므로 기억해주세요.

 

그렇다면 {1,}로 입력을 하면 어떻게 될까요?

 

앞애 값만 1로 바뀌었네요. 다른 값들은 바뀌지 않으니 주의해주세요.

 

 

 

3. 2차원 배열 대입

 

배열에 값을 대입 하는 방법입니다. 

변수에 값을 대입하는 것과 크게 다르지 않습니다.

위와 같이 초기화를 할 때 값을 입력해주어도 되고 아래와 같이 일일이 입력을 해도 됩니다.

 

a[0][1]과 a[1][2]에 각각 3과 10이라는 값을 대입해주었습니다.

출력 결과 나머지는 0이고 각각 잘 들어간 것을 확인할 수 있습니다.

 

 

배열은 차원에 따라 4차원, 5차원으로 늘릴 수 있지만

작업자가 헷갈릴 수도 있고, 요소의 수가 늘어남에 따라 메모리를 소비하게 되므로 주의해야 합니다.

각각의 데이터가 어떤 위치에 들어가는지 정확히 인지하고 배열을 사용해야 합니다.

 

 

1차원 배열과 마찬가지로 2차원 배열도 배열의 길이를 자동으로 설정할 수 있습니다.

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

 

 a와 같이할 수는 있지만 b와 같이는 할 수 없음을 나타냅니다.

 

 

처음에 배열이 많이 헷갈릴 수 있습니다.

하지만 많이 활용하게 되실 거고, 잘 활용하면 유용하고 좋으니 잘 익혀두시길 바랍니다.

감사합니다.

반응형