배열의 개념
배열은 동일한 데이터 타입의 여러 변수를 연속된 메모리 공간에 저장하는 자료구조입니다.
배열을 사용하면 관련된 데이터를 효율적으로 관리하고 처리할 수 있습니다.
예를 들어, 학생들의 점수나 일일 기온 등을 저장하고 처리할 때 유용합니다.
배열의 선언과 초기화
배열 선언
이 선언은 5개의 정수를 저장할 수 있는 배열을 생성합니다.
배열 초기화
첫 번째 예는 배열을 선언하면서 동시에 초기화합니다.
두 번째 예는 초기화 값의 개수에 따라 배열의 크기가 자동으로 결정됩니다.
부분 초기화
초기화 값이 배열 크기보다 적으면, 나머지는 0으로 초기화됩니다.
배열 요소 접근
배열의 각 요소는 인덱스를 통해 접근할 수 있습니다. 인덱스는 0부터 시작합니다.
배열과 메모리
배열은 연속된 메모리 공간에 저장됩니다. 각 요소는 타입의 크기만큼의 공간을 차지합니다.
이 예제는 배열의 메모리 구조를 보여줍니다. 각 요소가 연속적으로 저장되어 있음을 확인할 수 있습니다.
배열과 반복문
배열은 주로 반복문과 함께 사용됩니다.
범위 기반 for 루프 (C++ 11 이상)
C++ 11부터는 범위 기반 for 루프를 사용하여 배열의 모든 요소를 쉽게 순회할 수 있습니다.
배열의 크기 계산
배열의 크기를 동적으로 계산할 때는 다음과 같은 방법을 사용합니다.
문자 배열과 문자열
C++에서 문자열은 문자 배열로 표현될 수 있습니다.
문자열의 끝은 널 문자 '\0'
로 표시됩니다.
배열의 한계와 주의사항
- 크기가 컴파일 시간에 결정되어야 합니다.
- 범위를 벗어난 접근(배열 인덱스 오류)에 주의해야 합니다.
- 배열 전체를 한 번에 대입할 수 없습니다.
std::array (C++ 11 이상)
C++ 11부터는 std::array를 사용하여 더 안전하고 편리하게 배열을 다룰 수 있습니다.
연습 문제
- 정수 배열을 선언하고 초기화한 후, 모든 요소의 합을 계산하는 프로그램을 작성하세요.
- 문자 배열을 사용하여 간단한 암호화 프로그램을 구현하세요. (힌트 : 시저 암호를 사용해보세요)
- 배열을 사용하여 간단한 성적 관리 프로그램을 작성하세요. 학생들의 점수를 입력받고, 평균, 최고점, 최저점을 계산하여 출력하세요.
- 주어진 정수 배열에서 가장 자주 등장하는 숫자(최빈값)를 찾는 프로그램을 작성하세요.
참고자료