이번에는 C++에서의 배열 기초에 대해서 다뤄보자. 배열은 매우 중요한 자료형으로, 정말 많이 사용된다.
동일한 타입의 메모리를 하나의 단위로 다루기 위해서, 연결된 메모리 형태로 사용하는 자료형
C++은 C언어의 배열을 그대로 사용한다.
배열은 선언 시에 상수를 통해 메모리 할당 크기를 정해야 한다.
다음 예시는 1차원 배열을 선언하는 사례이다.
int n[10]; // 정수 10개짜리 빈 메모리 공간 선언 및 할당
double d[] = {0.1, 0.2, 0.3, 0.4}; // d의 크기는 자연스럽게 4로 할당된다.
배열의 각 원소는 다음과 같이 인덱스(index)를 통해서 접근한다.
n[5] = 20;
cout<<d[3];
배열의 인덱스는 0부터 시작하며, 배열의 크기를 넘어서 사용할 수 없다. 컴파일 오류는 발생하지 않지만, 실행 오류가 발생하거나 아니면 잘못된 메모리 접근으로 인해서 프로그램이 강제 종료될 수 있다.
2차원 배열은 행과 열을 가지고 있는 배열로, 다음과 같이 선언 가능하다.
int m[2][5];
위 예시는 2행 5열의 배열을 선언한 것을 보여준다. 1차원 배열과 마찬가지로 인덱스를 통해서 접근하여 사용하며, 인덱스 범위를 잘못 지정한 경우 오류가 발생하며 프로그램이 종료될 수 있다.
다음은 배열을 선언하고, 활용하는 예제 코드이다.
# include <iostream>
using namespace std;
int main() {
int n[10];
double d[] = { 0.1, 0.2, 0.5, 3.9 };
int i;
for (i = 0; i < 10; i++) n[i] = i * 2;
for (i = 0; i < 10; i++) cout << n[i] << ' ';
cout << endl;
double sum = 0;
for (i = 0; i < 4; i++) {
sum += d[i];
}
cout << "sum = " << sum << endl;
}