본문 바로가기
C언어

세이버의 C언어 강의 23강_ 배열이란 무엇인가

by 비원(Be one) 2019. 6. 2.
반응형

여러분 안녕하세요. 세이버입니다.

 

이번 강에서는 배열을 소개하고자 합니다.

배열을 사용하면 복잡한 프로그램을 조금 더 간단하게 바꿀 수 있으니 숙지하시면 도움이 될 겁니다.


1. 배열이란 무엇인가

배열이란 같은 자료형을 가진 연속된 메모리 공간을 의미합니다.

쉽게 말하면 같은 이름을 가진 변수가 여러 개 있다고 보시면 됩니다.

 

변수는 같은 이름을 가질 수 없다고 했잖아요?

변수는 서로 같은 이름을 가질 수 없지만, 배열은 얘기가 다릅니다.

드래곤볼에 나오는 인조인간 13호, 14호, 18호가 '인조인간'이라는 이름은 같지만, 뒤에 호수로 구분되는 거랑 비슷한 원리입니다.

이처럼 배열도 호수로 구분됩니다.

 

그럼 배열은 왜 사용하나요?

프로그램을 작성하다 보면 같은 뜻을 가진 값을 담을 변수가 많이 필요한 순간이 있습니다.

예를 들어 사람 100명의 이름과 나이를 처리하는 프로그램을 만들 때 이름과 나이를 저장해야 하는 변수가 100개가 필요합니다.

배열을 사용하지 못하면 여러분들은 이름을 저장하는 변수 100개, 나이를 저장하는 변수 100개를 일일이 선언해야 합니다. 

 

변수만 200개...

배열을 사용하면 이 같은 노가다를 안 해도 된다는 장점이 있습니다.

 

 

2. 배열의 선언법

배열을 선언하는 방법은 아래와 같습니다.

 


배열 선언법


 

배열을 선언할 때는 타입과 이름, 길이를 명시해줘야 합니다.

 

위에 나온 배열 int age[100]은 age라는 이름을 가진 길이가 100인 int형 배열이라는 뜻입니다.

이러한 배열들은 [ ]에 있는 숫자로 구분되며 age[20]과 age[15]는 서로 다른 공간입니다.

 

또 한 가지 알아두셔야 하는 건 배열이 시작하는 수는 1이 아니라 0이라는 것입니다.

즉 age배열은 age[1]부터 age[100]까지 있는 게 아니라, age[0]부터 age[99]까지 있는 겁니다.

이것을 헷갈려하시는 분들이 많은데, 이 개념이 잡혀있지 않으면 age[100]=3와 같이 배열의 길이를 넘겨서 처리하는 실수를 야기할 수 있으니 꼭 숙지해두시길 바랍니다.

 

3. 배열의 초기화

6강(변수란 무엇인가)에서 초기화를 설명드린 적 있습니다.

배열도 변수와 마찬가지로 초기화를 할 수 있습니다.

이렇게 배열 하나하나 값을 대입해줘도 문제는 없지만, 배열의 길이가 커질수록 하나씩 대입하기엔 한계가 있습니다.

그래서 보편적으로 중괄호{ }를 이용해 초기화하는 방법을 많이 사용합니다.

이렇게 하면 a[0]에는 1, a[1]에는 2, a[2]에는 3이 대입됩니다.

한 가지 팁을 드리자면 위와 같이 초기화를 하면 오류가 발생할까요??

 

배열의 길이를 선언 안했으니까 오류가 나지 않을까요??

 

정답은 오류가 나지 않습니다.

비록 배열의 길이를 선언하지는 않았지만 초기화하려는 데이터가 3개이므로 컴파일러가 자동으로 배열의 길이를 3으로 지정해줍니다.

 

또한 한 가지 알아두셔야 하는 건 배열을 선언하고 바로 초기화를 시켜줘야지, 선언과 초기화가 따로 이루어지면 안 된다는 것입니다.

이렇게 하면 오류납니다.

많은 분들이 실수하는 부분이니 꼭 알아두시길 바랍니다.


이번 강의는 여기까지입니다.

 

오늘도 수고하셨습니다.

 


정리

- 배열 : 같은 자료형을 가진 연속된 메모리 공간

- 배열은 같은 기능을 가진 여러 개의 변수가 필요할 때 사용된다.

- 배열 선언 시 필요한 것 : 배열의 타입, 배열의 이름, 배열의 길이

- 배열은 중괄호를 이용해 초기화가 가능하다.

- 초기화를 할 때 데이터의 개수가 명확하면 배열의 길이를 생략할 수 있다.

- 배열의 선언과 초기화는 동시에 실행되어야 한다.


강의가 유익하셨거나 마음에 드셨으면 구독과 좋아요, 댓글 부탁드립니다.

궁금하신 점이나 질문은 댓글이나 메일 남겨주세요.

 

poci5003@gmail.com

 

반응형