배열(array)

2022. 4. 11. 13:09C++/자료구조

배열(array)

  • 배열은 거의 모든 프로그래밍 언어에서 기본적으로 제공되는 자료형이다. 
  • 배열은 동일한 타입의 데이터를 한 번에 여러 개를 만들 때 사용된다. 

 

예를 들어 6개의 정수를 저장할 공간이 필요한 경우 다음과 같이 6개의 정수형 변수를 선언하여야한다. . 

int list1, list2, list3, list4, list5, list6;

 

그러나 배열을 통하여 다음과 같이 선언할 수 있다. 

int list[6];

6개의 정수를 저장할 공간을 만든 것이다. 

 

배열의 인덱스

배열을 사용하면 "연속적인 메모리 공간"이 할당되고 인덱스(index) 번호를 사용하여 쉽게 접근이 가능하다.

 

 

C++에서의 1차원 배열

배열은 변수 이름 끝에 [ ]을 추가하여 선언한다. [ ]안의 숫자는 배열의 크기이다. 

int list[6];

 

 

배열의 인덱스는 0부터 시작한다.  따라서 위와 같이 선언된 배열에서 배열의 요소는

list[0], list[1], list[2], list[3], list[4], list[5]이다. 

 

배열에서 각 요소의 주소

첫 번째 배열 요소인 list[0]의 주소가 기본주소가 되고 다른 요소들의 주소는 다음과 같다. 

 

배열의 요소 메모리 주소
list[0] 기본주소 = base
list[1] base + 1*sizeof(int)
list[2] base + 2*sizeof(int)
list[3] base + 3*sizeof(int)
list[4] base + 4*sizeof(int)
list[5] base + 5*sizeof(int)

 

 

 

실제로 이를 코드로 짜보면 아래와 같다. 

#include<iostream>
using namespace std;

int main(void)
{
    int list[6] = {0,1,2,3,4,5};

    cout<<"&list[0]: "<<&list[0]<<endl; //0x61fef8  //4씩 증가하는 것을 알수있다. 
    cout<<"&list[1]: "<<&list[1]<<endl; //0x61fefc  //sizeof(int) == 4byte
    cout<<"&list[2]: "<<&list[2]<<endl; //0x61ff00
    cout<<"&list[3]: "<<&list[3]<<endl; //0x61ff04
    cout<<"&list[4]: "<<&list[4]<<endl; //0x61ff08
    cout<<"&list[5]: "<<&list[5]<<endl; //0x61ff0c
    return 0;
}

 

 

C++에서의 2차원 배열

2차원 배열은 요소들이 2차원 형태로 나열된 배열이다. 

2차원 배열에서 가로줄을 행(row), 세로줄을 열(column)이라고 한다. 

int list[3][5];
  0열 1열 2열 3열 4열
0행 list[0][0] list[0][1] list[0][2] list[0][3] list[0][4]
1행 list[1][0] list[1][1] list[1][2] list[1][3] list[1][4]
2행 list[2][0] list[2][1] list[2][2] list[2][3] list[2][4]

위의 선언에서는 3개의 행과 5개의 열을 가지는 2차원 배열이 생성된다. 

C++에서는 배열의 배열을 만들어 2차원 배열을 구현한다. 

즉, 크기가 3인 1차원 배열을 만들고 이 배열의 요소에 크기가 5인 배열을 생성하여 추가한다. 

 

2차원 배열

 

'C++ > 자료구조' 카테고리의 다른 글

스택 응용 1. 백 스페이스 키  (0) 2022.04.22
배열을 이용한 스택 구현  (0) 2022.04.22
연결 리스트를 이용한 스택 구현  (0) 2022.04.22
스택(stack) - 2  (0) 2022.04.22
스택(stack)-1  (0) 2022.04.18