-
[C Language] 28. 배열 개요 - C 언어CSE/C Language 2015. 7. 16. 16:43
1. 배열의 필요성
배열이 얼마나 유용한 개념이고 프로그램상에서 얼마나 요긴하게 사용될 수 있는지 알아보자. 어느 학교의 선생님이 학급의 성적을 관리하고 싶을 때 다음과 같은 과정이 필요할 것이다. 학급 총원은 40명이다.
- 학급의 학생 이름을 모두 나열한다.
- 학생 이름 옆에 성적을 기입한다.
- 학생별 총점, 평균을 구한다.
- 국어, 영어, 수학의 학급 전체 총점과 평균을 구한다.
- 학급 전체의 총점과 평균을 구한다.
이를 위해서는 모두 40명에 대한 변수가 필요하며, 아래와 같이 작성해서 총점과 평균을 구할 수 있다.
1234int a, b, c, d, e, f, ...total = a + b + c + d + e + ...ave = total / 40;cs 일일이 모든 변수를 나열하기에는 불편하다는 생각이 들 것이다. 위의 프로그램을 배열을 사용하여 다음과 같이 수정할 수 있다.
123456789int student[40];for ( i = 0; i < 40; i++) {total += student[i];}ave = total / 40;cs 변수명은 student로 단 하나이다. 변수명 옆의 숫자(첨자)를 기입하여 개개의 학생들을 구별한다. 40명에 대한 변수를 배열 명과 첨자로 해결하고, 이를 이용하여 학생들의 점수를 할당한 후 총점이나 평균을 구하는 것이 위의 경우처럼 상당히 쉽다.
2. 배열의 특징
배열의 특징은 아래와 같다.
- 배열은 연속된 메모리 공간을 가진다.
배열을 정의하면 메모리 영역에 분산되어 저장되지 않고 연속적으로 저장된다. 만약 배열이 연속적으로 저장되지 않는다면 포인터 연산이 불가능해지기에 C의 큰 장점 중 하나가 쓸모 없게 될 것이다.
= 배열요소의 자료형은 모두 같다.
배열을 정의하면 모든 요소는 같은 형을 가진다. 배열첨자를 10으로 지정한 후 앞의 5개는 int 형으로 뒤의 5개는 char 형으로 지정할 수 없다는 말이다. 배열은 반드시 같은 자료형을 가진다.
'CSE > C Language' 카테고리의 다른 글
[C Language] 31. 기억부류(Storage Class) 개요 - C 언어 (0) 2015.07.18 [C Language] 30. 2차원 배열 - C 언어 (0) 2015.07.18 [C Language] 29. 1차원 배열 - C 언어 (0) 2015.07.16 [C Language] 27. 시간함수 - C 언어 (0) 2015.07.16 [C Language] 26. 함수 - 재귀함수(Recursive) - C 언어 (0) 2015.06.13 [C Language] 25. 함수 - 리턴 값 여러 개 받기 - C 언어 (0) 2015.06.13