Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C/C++ 프로그래밍의 배열 완벽 가이드: 선언, 초기화, 접근 방법

배열(Array)은 동일한 데이터 타입을 가진 고정된 개수의 요소들을 모아 놓은 자료 구조입니다. 배열의 요소들은 메모리상에 연속된 공간에 순차적으로 저장됩니다.

배열의 각 요소는 배열 이름과 대괄호 "[]" 안의 인덱스 값을 사용해 접근할 수 있습니다. 예를 들어 a[4], a[3]과 같은 형태로 특정 요소를 읽거나 수정할 수 있습니다.

배열 선언하기

C/C++ 프로그래밍 언어에서 배열은 배열의 데이터 타입과 길이(요소의 개수)를 정의하여 선언합니다. 기본 선언 문법은 다음과 같습니다.

data_type array_name[length];

예를 들어, 길이가 10인 float 타입의 percentage라는 이름의 배열을 선언하려면 다음과 같이 작성합니다.

float percentage[10];

배열 값 초기화하기

C++에서는 배열 값을 초기화하는 여러 가지 방법이 있습니다. 요소를 하나씩 초기화하거나, 하나의 문장으로 모든 값을 한 번에 선언할 수 있습니다.

요소를 하나씩 초기화하는 경우:

percentage[5] = 45.3;

모든 값을 한 번에 선언하는 경우:

float percentage[] = {56.4, 99.0, 12.20, 67.2};

초기화된 배열은 메모리에서 다음과 같이 인덱스와 함께 저장됩니다.

012345
78.0656.7899.2012.2287.6634.44

배열 요소 접근하기

배열의 값에 접근하려면 배열 이름 뒤에 대괄호를 붙이고 그 안에 인덱스 값을 넣으면 됩니다. 예를 들면 다음과 같습니다.

float myPercentage = percentage[4];

이 코드는 percentage 배열의 5번째 요소(인덱스 4) 값을 변수에 저장합니다. 참고로 C/C++ 배열의 인덱스는 항상 0부터 시작하므로, 길이가 n인 배열의 마지막 요소 인덱스는 n-1입니다.

예제 1: for 루프로 배열의 모든 값 출력하기

다음은 for 루프를 사용해 배열의 모든 값을 출력하는 프로그램입니다.

#include <iostream>
using namespace std;
int main(){
    float percentage[] = {56.4, 99.0, 12.20, 67.2};
    cout<<"printing all values of the array :\n";
    for(int i = 0; i<4 ; i++){
        cout<<"element "<<i+1<<" = "<<percentage[i]<<endl;
    }
    return 0;
}

실행 결과

printing all values of the array :
element 1 = 56.4
element 2 = 99
element 3 = 12.2
element 4 = 67.2

배열 전체가 아니라 특정 위치의 값만 출력할 수도 있습니다.

예제 2: 특정 인덱스의 값 출력하기

#include <iostream>
using namespace std;
int main(){
    float percentage[4];
    percentage[0] = 56.3;
    percentage[1] = 99.12;
    percentage[2] = 78.32;
    percentage[3] = 61.3;
    cout<<"3rd element is "<<percentage[2];
    return 0;
}

실행 결과

3rd element is 78.32

위 예제에서 주목할 점은 3번째 요소를 출력할 때 percentage[2]를 사용했다는 것입니다. 인덱스가 0부터 시작하기 때문입니다.

또한 이미 선언된 배열의 값은 언제든지 다시 할당하여 변경할 수 있습니다.

예제 3: 배열 값 재할당하기

#include <iostream>
using namespace std;
int main(){
    float percentage[4];
    percentage[0] = 56.3;
    percentage[1] = 99.12;
    percentage[2] = 78.32;
    percentage[3] = 61.3;
    cout<<"3rd element is "<<percentage[2];
    percentage[2] = 12.22;
    cout<<"\nafter change :\n";
    cout<<"3rd element is "<<percentage[2];
    return 0;
}

실행 결과

3rd element is 78.32
after change :
3rd element is 12.22

마무리

배열은 같은 타입의 데이터를 효율적으로 관리할 수 있는 C/C++의 기본적인 자료 구조입니다. 선언 시 크기를 지정하고, 인덱스를 통해 개별 요소에 자유롭게 접근하고 수정할 수 있다는 점만 기억하면 됩니다. 단, 배열 범위를 벗어난 인덱스에 접근하면 정의되지 않은 동작(undefined behavior)이 발생할 수 있으므로 항상 유효한 인덱스 범위(0 ~ 길이-1) 내에서 사용하는 것이 중요합니다.