이번 강좌에서는 저번 강좌에 이어서
2차원 배열에 대해 공부해볼까 합니다.
우리는 그냥 배열을 배우면서 아래와 같은 그림을 보았습니다.
이런식으로 이루어진 배열을 1차원 배열 또는 배열 이라고 부릅니다
자 그럼 배열을 이용해 게임 맵을 만든다고 칩시다.
0은 지나갈수 있는길
1은 지나갈수 없는길
이런식으로 게임 맵을 만들어보겠습니다
자 이런식으로 게임 맵이 완성되었네요 그림으로 치면
이런식의 맵이 되겠네요!
아무튼! 이 맵에 대한 정보를 배열에 넣으려고 합니다
물론
이 숫자를 한줄로 정렬해서
00000000011111111101100000000110111111111000000000
이렇게 해도 표현 가능하겠지만 보시다 싶이 뭐가 더 보기 편한가요?
한줄보단 여러줄로 하는게 더 편하죠..
그래서 존재하는 기능이 2차원배열입니다
2차원배열이란 1차원배열이 가로줄 한줄의 배열이였다면
그 1차원배열을 세로줄로 나열한 배열이라고 보시면 됩니다
그림으로 보자면!
이런식의 배열을 세로가 4, 가로가 5인 크기의 2차원배열 이라고 보시면 되겠네요!
그럼 이제 2차원 배열을 만드는 법을 알아볼까요?
자료형 배열이름[세로길이][가로길이]; |
이런식으로 하시면 됩니다!
사용은 1차원 배열처럼 똑같이 사용하되
세로 몇번째인덱스인지 가로 몇번째인덱스인지를 정해줘야합니다.
또! 선언과 함께 할당을 동시에 할수있나요?
할수있습니다! 예를들어 아까 처음에 보여드렸던 게임 맵을 코드로 표현하자면
int arr[5][10] = {
{0,0,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,0,1},
{1,0,0,0,0,0,0,0,0,1},
{1,0,1,1,1,1,1,1,1,1},
{1,0,0,0,0,0,0,0,0,0}
};
이렇게 할수있습니다!
자 그럼 이번에도 문제를 몇개 내보겠습니다
이런식의 2차원배열 arr이 있다고 칩시다.
아래의 값을맞춰보세요
1. arr[3][4]
2. arr[0][0]
3. arr[2][1]
4. arr[1][3]
정답은 바로 밑에서 공개할테니 한번씩 다 풀어보신후 확인해주세요!!!
정답
1. 12
2. 20
3. 5
4. 16
수고하셨습니다! 다음에는 define과 하드코딩에 대해 배울게요!
'C' 카테고리의 다른 글
([C언어] 13강) sizeof연산자로 배열 길이 구하기 (0) | 2019.06.27 |
---|---|
([C언어] 12강) define과 하드코딩 (0) | 2019.06.27 |
([C언어] 10강) 배열 (0) | 2019.06.26 |
([C언어] 9강) while문과 do-while문 (0) | 2019.06.26 |
([C언어] 8강) 다중 for문 (2) | 2019.06.26 |