16. 다차원 배열
I. 다차원 배열
-
2차원 배열의 선언
- 2차원 배열의 선언과 의미
-
1차원 배열
-
2차원 배열
-
가로가 열 세로가 행을 가리킨다.
- 자료형 배열이름[행][열]; 이런식으로 선언하면 된다.
-
실제 메모리상의 그림
-
- 위와 같은 그림 처럼 메모리에 잡힌다.
-
2차원 배열! 선언과 동시에 초기화 (여기서 부터는 그림 귀찮아서 안 그립니다.)
- 초기화 case 1: 행 단위로 모든 요소들을 초기화 하는 경우
- int main()
{
int somang[3][3]=
{
{1,2,3},{4,5,6},{7,8,9}
};
}
- 위와 같이 배열의 개수 만큼 써서 초기화를 해주면 된다. {} 당 한 행으로 보면 된다.
- 초기화 case 2: 행 단위로 일부 요소들만 초기화하는 경우
- int main()
{
int somang[3][3]=
{
{1},{4,5},{7,8,9}
};
}
- 위와 같이 초기화 할경우 첫째행에 들어가는 수는 1,0,0 이 들어간다. 부족한 부분은 0으로 채워진다.
- 초기화 case 3: 1차원 배열 초기화 형태를 취하는 경우
int somang[3][3] = {1,2,3,4,5,6,7};
- 위와 같이 하면 1~7까지 들어가고 나머지 0이 들어간다.
- 배열의 크기를 알려주지 않고 초기화 하기
int arr[][]={1,2,3,4,5,6,7,8}
- 위와 같이 하면 2*4 행렬 또는 4*2 행렬 1*8 8*1행렬등 어떤식인지 컴터가 몰라 오류가 난다. 다음과 같이 둘중 하나는 알려줘야 한다.
int arr[][4]={1,2,3,4,5,6,7,8};
II. 3차원 그 이상의 배열!
여기서는 별로 설명을 안하겠다.
- 3차원 이상의 배열은 거의 사용 안한다.
- 2차원배열을 행렬로 생각하고 3차원 행렬은 큐브 모양으로 되어 있다고 생각하면 쉬울 것이다.
문제
16 -1
문제 1
3*9 int형 2차원배열을 선언하자 그리고 그 안에 구구단의 결과를 4단까지 저장하자 제대로 저장되었음을 확인하기 위해서 출력해 보자
문제2
A는 2*4 int형 배열이다. 1~8까지로 초기화 시킨 다음 4*2형태로 바꾸고 A에 있는 값으로 초기화 시키자.
이 글은 스프링노트에서 작성되었습니다.
'2. C/C++ > 01. C' 카테고리의 다른 글
18. 다차원 배열 그리고 포인터 (0) | 2008.12.07 |
---|---|
17. 포인터의 포인터 (0) | 2008.12.07 |
14. 포인터와 함수에 대한 이해 (0) | 2008.12.07 |
13. 포인터와 배열! 함께 이해하기 (0) | 2008.12.07 |
12. 포인터의 이해 (0) | 2008.12.07 |