이번 포스트에서는 C++에서 배열을 사용하는 방법에 대해 다룬 코드 예제를 분석하고, 주석을 포함한 설명을 통해 배열의 개념과 사용법을 자세히 살펴보겠습니다. 배열은 여러 개의 변수를 한 번에 선언하고 관리할 수 있는 강력한 도구입니다. 이를 통해 메모리 관리와 데이터 처리를 효율적으로 할 수 있습니다.
/*
* 배열 : 여러 개의 변수를 한 번에 생성해줄 수 있는 기능이다.
* 형태 : 변수타입 배열명[개수]; 의 형태로 선언할 수 있다.
* 배열의 특징 : 배열은 연속된 메모리 블럭에 공간이 할당된다.
* 배열은 인덱스를 이용해서 원하는 부분에 접근하여 값을 저장할 수 있다.
* 인덱스는 0부터 시작하며, 개수-1 까지의 범위를 갖는다.
* 즉, 10 개라면 인덱스는 0 ~ 9까지의 총 10개의 요소를 가지게 된다.
* 예시: int iArray[10]; // 40바이트 크기의 배열을 생성한다.
* (int형 변수는 4바이트이므로, 10개의 요소를 갖는 배열은 4바이트 * 10 = 40바이트 크기를 갖는다.)
* |4|4|4|4|4|4|4|4|4|4| <- 메모리 블럭
* index
* |0|1|2|3|4|5|6|7|8|9| <- 인덱스 번호
*/
// 배열 뿐만 아니라 일반 변수들도 선언만 하고 값을 초기화하지 않을 경우 쓰레기 값이 들어가게 된다.
int iArray[10] = {1,2,3,4,5,6,7,8,9,10}; // 초기화 방법 1
// 배열을 선언과 동시에 초기화. 모든 인덱스에 초기값을 할당한다.
int iArray[10] = { 1,2,3,4,5 }; // 초기화 방법 2
// 0~4번 인덱스까지는 1,2,3,4,5의 값이 들어가게 되고 나머지 인덱스(5~9)는 모두 0으로 초기화된다.
int iArray[10] = {}; // 초기화 방법 3
// 비어 있는 중괄호를 대입하면, 모든 인덱스를 0으로 초기화한다.
iArray[1] = 1234; // 배열의 두 번째 요소(iArray[1])에 1234 값을 대입한다.
for (int i = 0; i < 10; ++i)
{
cout << iArray[i] << endl; // 배열의 각 요소를 출력한다.
}
배열 선언 및 초기화:
int iArray[10];
: 10개의 int
형 요소를 갖는 배열을 선언합니다. 배열은 연속된 메모리 공간에 저장되며, 각 요소는 인덱스를 통해 접근할 수 있습니다.int iArray[10] = {1,2,3,4,5,6,7,8,9,10};
: 배열의 모든 요소를 지정된 값으로 초기화합니다.int iArray[10] = {1,2,3,4,5};
: 배열의 앞쪽 요소(0~4)는 초기화되며, 나머지 요소(5~9)는 자동으로 0
으로 초기화됩니다.int iArray[10] = {};
: 배열의 모든 요소를 0
으로 초기화합니다.배열 요소 접근 및 수정:
iArray[1] = 1234;
: 배열의 두 번째 요소(인덱스 1)에 1234
라는 값을 할당합니다.for (int i = 0; i < 10; ++i)
{
cout << iArray[i] << endl; // 각 인덱스의 값을 출력
}
이 코드에서는 배열의 각 요소를 순차적으로 출력합니다. 초기화된 값들이 순서대로 출력됩니다.초기화하지 않은 배열:
예시:
int iArray[10]; // 초기화하지 않은 배열
cout << iArray[5] << endl; // 쓰레기 값이 출력될 수 있음
/*
* 배열의 개수를 2개 지정하면 2차원 배열이 된다. 3개 지정하면 3차원 배열이 된다.
* 2차원 배열의 크기는 앞의 수 * 뒤의 수 만큼 메모리 공간을 차지한다. 아래는 10 * 10개의 배열이 생성된 것이다.
*/
int iArray2[10][10] = {}; // 2차원 배열을 0으로 초기화
// 전체 배열을 0으로 초기화
int iArray2[10][10] = {{1,2,3},{4,5,6}};
// 초기화된 값은 배열의 앞쪽부터 채워지며, 나머지 부분은 0으로 초기화됨
for (int i = 0; i < 10; ++i)
{
for (int j = 0; j < 10; ++j)
{
cout << iArray2[i][j] << "\t"; // 2차원 배열의 각 요소를 출력, 각 값 사이에 탭으로 구분
}
cout << endl; // 각 행이 끝날 때 줄바꿈을 추가
}
2차원 배열 선언:
int iArray2[10][10];
: 10x10 크기의 2차원 배열을 선언합니다. 2차원 배열은 메모리 공간에서 행렬 형태로 배치되며, 총 100개의 int
형 요소를 가집니다.2차원 배열 초기화:
int iArray2[10][10] = {};
: 모든 요소를 0
으로 초기화합니다.int iArray2[10][10] = {{1,2,3},{4,5,6}};
: 배열의 첫 번째 행에 {1,2,3}
, 두 번째 행에 {4,5,6}
을 초기화하며, 나머지 요소는 0
으로 채워집니다.2차원 배열 출력:
for (int i = 0; i < 10; ++i)
{
for (int j = 0; j < 10; ++j)
{
cout << iArray2[i][j] << "\t";
}
cout << endl;
}
for
루프는 각 행을 순차적으로 선택하고, 내부 for
루프는 각 행의 요소를 순차적으로 출력합니다.\t
)으로 구분하여 출력되며, 각 행이 끝날 때 줄바꿈이 추가됩니다.// int iArr[100000000000000000000000]; // 선언 안됨
배열은 C++에서 데이터의 집합을 관리하고 처리하는 데 매우 중요한 도구입니다. 배열을 사용하면 연속된 메모리 블록에 데이터를 저장하고, 인덱스를 사용하여 각 요소에 효율적으로 접근할 수 있습니다. 이 포스트에서는 배열의 선언, 초기화, 2차원 배열 사용법 등을 예제 코드와 함께 자세히 설명하였습니다. 배열의 개념을 잘 이해하고 활용하면, 데이터 처리와 메모리 관리를 더욱 효율적으로 할 수 있습니다.