IMCAT.DEV
로그인 가입
C++ 입문 자료구조

C++ 배열 (Arrays)

C++ 배열 (Arrays) — 초급

배열 (Arrays)

1. 도입 (왜 배워야 하는가)

배열은 프로그래밍에서 데이터를 효율적으로 관리하고 처리하기 위해 필수적인 자료구조입니다. 배열을 사용하면 동일한 데이터 타입의 여러 값을 하나의 변수로 묶어서 관리할 수 있습니다. 예를 들어, 쇼핑몰에서 고객의 장바구니에 담긴 여러 상품의 가격을 저장하거나, 학생의 성적을 관리하는 데 유용합니다. 배열을 모르면 이러한 데이터를 개별적으로 관리해야 하므로 코드가 복잡해지고, 효율성이 떨어집니다. 결국, 배열을 활용하지 않으면 코드의 가독성이 떨어지고, 유지보수가 어려워질 수 있습니다.

2. 핵심 개념 설명

배열은 동일한 데이터 타입의 요소를 연속적으로 저장하는 자료구조입니다. 배열의 인덱스(0부터 시작)는 각 요소의 위치를 나타내며, 이를 통해 각 요소에 쉽게 접근할 수 있습니다.

  • 정의: 배열은 같은 타입의 데이터들을 순서대로 저장하는 구조이다.
  • 비유: 배열을 책장에 비유해 보세요. 각 책(데이터)은 특정 위치(인덱스)에 꽂혀 있고, 책장을 통해 쉽게 원하는 책을 찾을 수 있습니다.
  • 용어설명
    요소 (Element)배열에 저장된 개별 데이터
    인덱스 (Index)배열의 각 요소의 위치 (0부터 시작)
    크기 (Size)배열에 저장할 수 있는 요소의 수

    3. 기본 코드 예제

    아래는 배열을 선언하고 초기화하는 기본적인 예제입니다.

    #include <iostream>
    using namespace std;
    
    int main() {
        // 정수형 배열의 선언 및 초기화
        int numbers[5] = {10, 20, 30, 40, 50};
    
        // 배열의 요소 출력
        for (int i = 0; i < 5; i++) {
            cout << "numbers[" << i << "] = " << numbers[i] << endl;
        }
    
        return 0;
    }

    실행 결과:

    numbers[0] = 10
    numbers[1] = 20
    numbers[2] = 30
    numbers[3] = 40
    numbers[4] = 50
  • int numbers[5] = {10, 20, 30, 40, 50};: 정수형 배열 numbers를 선언하고 초기화합니다. 배열의 크기는 5입니다.
  • for (int i = 0; i < 5; i++): 배열의 각 인덱스를 순회하기 위한 반복문을 시작합니다.
  • cout << "numbers[" << i << "] = " << numbers[i] << endl;: 현재 인덱스의 값을 출력합니다.
  • 4. 실전 활용 예제

    1. 쇼핑몰 장바구니 구현:
    2. 쇼핑몰에서 고객이 선택한 상품의 가격을 배열로 저장합니다.

         #include <iostream>
         using namespace std;
      
         int main() {
             double prices[3] = {19.99, 5.49, 3.99}; // 상품 가격
             double total = 0;
      
             for (int i = 0; i < 3; i++) {
                 total += prices[i]; // 상품 가격을 합산
             }
      
             cout << "총 합계: $" << total << endl; // 총합계 출력
             return 0;
         }

      이 코드는 장바구니에 담긴 상품의 가격을 합산하여 총 금액을 계산합니다.

    3. 학생 성적 관리:
    4. 학생의 성적을 배열로 관리하여 평균 점수를 구합니다.

         #include <iostream>
         using namespace std;
      
         int main() {
             int scores[4] = {85, 90, 78, 92}; // 학생 성적
             int sum = 0;
      
             for (int i = 0; i < 4; i++) {
                 sum += scores[i]; // 성적을 합산
             }
      
             double average = sum / 4.0; // 평균 계산
             cout << "학생의 평균 성적: " << average << endl; // 평균 성적 출력
             return 0;
         }

      이 코드는 학생의 성적을 배열로 관리하고 평균을 계산합니다.

      5. 흔한 실수와 주의사항

    5. 배열 크기 초과 접근:
    6. - 잘못된 코드:

           int arr[3] = {1, 2, 3};
           cout << arr[3]; // 배열 크기를 초과한 접근

      - 올바른 코드:

           cout << arr[2]; // 마지막 요소인 3에 접근
    7. 배열 초기화 누락:
    8. - 잘못된 코드:

           int arr[5]; // 초기화하지 않음
           cout << arr[0]; // 쓰레기 값 출력

      - 올바른 코드:

           int arr[5] = {0}; // 초기화
           cout << arr[0]; // 0 출력

      6. 정리

    9. 배열은 동일한 타입의 데이터를 순차적으로 저장하는 자료구조입니다.
    10. 배열을 사용하면 데이터를 효율적으로 관리할 수 있습니다.
    11. 인덱스를 통해 배열의 각 요소에 접근할 수 있습니다.
    12. 흔히 발생하는 실수로는 배열 크기 초과 접근과 초기화 누락이 있습니다.

다음에 학습하면 좋은 주제는 다차원 배열과 포인터입니다. 배열의 기초를 이해한 후, 더 복잡한 데이터 구조와 메모리 관리의 기초를 배워보세요.