-
[삼쾌한IT강의] C언어 2차원 배열C언어/이론 2019. 1. 26. 22:47
안녕하세요! 삼쾌한 IT강의 백소라 강사입니다.
이번 포스팅에서는 C언어에서 2차원 배열을 선언하는 방법과 초기화 하는 방법에 대한 설명과 사용법에 대해 알려드리도록 하겠습니다.
C언어 배열에 대해 궁금하신 분들은 아래 링크부터 먼저 확인 해 주세요!
2019/01/26 - [C언어/이론] - [삼쾌한IT강의] C언어 배열의 선언과 초기화
1. 2차원 배열이란?
우리가 1차원 기본 배열에서는 데이터타입이 같은 값들을 묶어서 단순하게 처리하는것만 해왔죠. 그런데 실질적으로 우리가 다루는 데이터들은 대부분 2차원으로 되어있어요.
위처럼 학번별, 과목별 성적을 나타내는 테이블도 2차원이라고 보면 되는데요, 학번 부분이 3행 / 각각의 국영수 물리 점수 부분이 4열을 이루고있죠. 위의 테이블을 3행 4열의 2차원 배열로 볼 수가 있습니다.
2. 2차원 배열의 선언과 초기화
위의 테이블처럼 3행 4열의 2차원배열을 다루기 위해서 아래와 같이 선언을 해 줄수 있습니다.
데이터타입 변수명[행의크기][열의크기];
int score[3][4];
어떤가요? 1차원 기본 배열을 선언하는 것과 크게 다르지않죠? 대괄호가 하나 더 늘었을 뿐입니다. 그러면 대괄호를 하나 더 늘리면?! 3차원 배열을 선언한다고 보면 되겠죠.
초기화 해주는 방법도 1차원 배열과 비슷합니다.
int score[3][4] = {
{ 87, 98, 80, 55 }, // 학번 20190101의 점수
{ 99, 67, 89, 78 }, // 학번 20191023의 점수
{ 80, 89, 67, 76 } // 학번 20181234의 점수
}
1번에 있는 테이블을 토대로 2차원 배열을 선언하고 초기화 해줬습니다. 2차원 배열의 원소도 1차원 배열과 마찬가지로 중괄호로 묶어서 데이터를 초기화하는데, 다른점은 행별로 다시 중괄호를 묶어서 구분을 해줬죠?
2차원 배열에서도 배열의 크기를 생략 할 수 있는데, 행에 해당되는 크기만 생략이 가능합니다. 아래를 참고 하세요.
int score[ ][4] = {
{ 87, 98, 80, 55 },
{ 99, 67, 89, 78 },
{ 80, 89, 67, 76 }
}
또 1차원 배열에서 다룬것처럼 배열의 원소들을 배열의 크기에 맞춰 한꺼번에 모두 초기화 할 필요가 없습니다.
int score[ ][4] = {
{ 87, 98 },
{ 99, 67, 89 },
{ 80, 89, 67 }
}
score 배열은 3행 4열의 크기를 가진 배열인데 초기화를 해준 내용을 보면 1행에 2, 2행에 3, 3행에 3만큼만 값을 넣어주었죠. 2차원 배열도 마찬가지로 원소를 대입해주지 않으면 그 배열이 가지고있는 자료형의 초기값으로 해당되는 배열의 인덱스 값을 초기화 해줍니다. 그래서 score[3][2]는 0이라는 값으로 초기화가 됩니다.
자, 여기까지 2차원 배열의 의미와 선언 및 생성방법에 대해 알아봤습니다. 실습 예제는 아래 링크를 따라가 주세요!
2019/01/25 - [C언어/실습예제] - [삼쾌한 예제] C언어 배열 예제
이상 유쾌,상쾌,통쾌 삼쾌한 IT강의, 백소라 강사의 C언어 2차원 배열에 대한 설명이었습니다.
내용이 도움이 되셨다면 공감버튼 클릭, 댓글은 센스! 감사합니다.
'C언어 > 이론' 카테고리의 다른 글
[삼쾌한IT강의] C언어 문자열 길이, 문자열 복사, 문자열 연결, 문자열 비교 (0) 2019.01.27 [삼쾌한IT강의] 배열과 문자열 (0) 2019.01.27 [삼쾌한IT강의] C언어 배열의 선언과 초기화 (0) 2019.01.26 [삼쾌한 IT강의] C언어 반복문2편 (while, do while) (0) 2019.01.20 [삼쾌한 IT강의] C언어 반복문1편 (for) (0) 2019.01.20 댓글