본문 바로가기

C Language/Programming Course

6장 배열(1부 배열의 기초) 첫번째 시간


6장 배열

1부 배열의 기초

 

이번 시간 부터는 배열에 대해서 배워 보겠습니다.
시작 하기전에 먼저 배열이 무엇인가 대해서 알아야 보겠습니다.
배열은 간단히 말해서 여관에 있는 방이라고 생각을 하시면 될꺼 같습니다.

무슨 말이냐 하면
여관방을 보면 각층마다 고정적으로 방이 여러개 있을 겁니다.
예를 들어 보면

 401호  402호  403호   404호 
 301호   302호  303호   304호 
 201호  202호  203호   204호 
 101호  102호  103호  104호

이렇게 있을 껍니다.  

그중에서 먼저 1층만 보도록 하겠습니다. 이걸 다 보면 나중에 배울 2차원 배열이라고 하는건데
1차원 보다 조금 더 어렵기 때문에 먼저 1층만 가지고 설명을 드리겠습니다.

1층만 따로 보면 

 101호  102호   103호  104호 

 이렇게 되겠죠!?
여기에 사람이 들어 간걸 c언어로 표현할려면

==========================================================
int _101ho, _102ho, _103ho, _104ho;
_101ho = 1;
_102ho = 2;
_103ho = 3;
_104ho = 4;
==========================================================

이렇게 해서 사람수를 넣어야 겠죠!?
참 여기서 ' _ ' 이걸 먼저 한이유는 아시겠죠!?
변수명 앞에 숫자를 먼저 쓰면 안되기 때문입니다.  

이렇게 계속 변수를 만들다가 보면 변수의 수가 많아지겠죠?!

그래서 이제 배울 배열이 필요한 것입니다.
배열에 대해서 바로 설명하기 전에 현재 상황을 표현 해 보겠습니다.
저 1층만 보게 되면 1층이라는 이름 안에 101호, 102호, 103호, 104호 존재 하는 것입니다.
즉, 모두 1층 안에 포함이 되는 거죠 .
그리고 같은 1층에는 같은 형태가 있겠죠?!
101호에는 사자만 살고 102호에는 외계인이 살고 103호에는 표범이 살고 이렇진 않을 것입니다.
모두 사람이 몇명씩 살고 있겠죠!?
그럼 방금 말한 것을 보게 되면
1층이라는 곳에는 101호~ 104호까지 4개의 호가 존재하며 사람이 몇명 사는 것이다.
이렇게 라고 말할 수 있겠죠..
그럼 이제 이를 c언어로 표현 해 보겠습니다.
변수명 1층 안에 101호~104호의 변수명들이 존재하고 타입은 int(사람의 인원수)이다.
이렇게 표현 가능 합니다.

여기에서 배열의 표현을 알 수 있습니다.
바로 "1층 안에 101~104호가 있다"라는 표현있죠.
이 부분이 바로 배열이 될 수 있는 부분 입니다.
그래서 배열이라는 것을 이 말로 생각해 보면 "큰 변수명 안에 작은 변수명들이 존재 하구나."
라는 생각을 하게 될 것입니다.
그럼 이를 표현 해 보겠습니다.

================================
int num1[4];
================================

이렇게 사용이 됩니다.
int는 위에서 말한 사람의 인원수이며 num1는 1층을 나타내며 [4]는 1층안에 있는 101호~104호를 나타냅니다.

이제 101호~104호까지 값을 넣고 싶을 때면

================================
int num1[4];

num1[0] = 1;
num1[1] = 2;
num1[2] = 3;
num1[3] = 4;
================================

 이렇게 넣으면 됩니다.
즉, 101호의 표현은 num1[0]이며, 104호의 표현은 num1[3] 입니다. 

값이  1부터 시작을 하는 것이 아니라 0부터 시작하는 이유는
일단 컴퓨터는 처음의 숫자는 1이 아니라 0이라고 생각하고 있습니다.
그래서 0부터 해서 배열 선언 한곳의 "[]" 안의 갯수 만큼 생성을 하는 겁니다.
그래서 0~3까지가 나오는 것입니다.

그래서 101호라는 곳에 대해서 출력을 하거나 입력을 하거나 하고 싶을 때는
num1[0]이라는 변수명을 사용하면 됩니다.

그럼 처음에 배열을 선언할 때 모두 0명으로 선언을 할 때에는
어떻게 하면
================================
int num1[4] = {0,};
int num1[4] = {0};
int num1[4] = {0,0,0,0};
================================
이렇게 여러가지 방법이 있습니다.
저 같은 경우는 첫번째 방법을 쓰고 있습니다.

그리고 값을 다 다르게 주고 싶은 경우에는 3번째 방법으로 각각 값을 넣어 주면 됩니다.
오늘은 여기까지 설명을 하고 다음시간에는 배열에 대해서 조금 더 알아 보도록 하겠습니다.