자료구조

[자료구조] 배열(Array)

JunsuKim 2023. 9. 23.
728x90

배열

배열이란 동일한 자료형을 연속적으로 저장하는 자료구조이다.

주소값을 확인해보면 4씩 증가하는 것을 확인할 수 있다.

이는 int형 데이터를 저장하기에 int의 크기인 4바이트씩 증가하는 것이다.

주소값은 각 자료형의 크기만큼 일정하게 증가하게 된다.

즉, char형 배열이라면 주소값이 1씩 증가하고, double형이라면 8씩 증가하게 된다.

배열의 선언

언어마다 배열의 생성 방법은 다르다.

여기서는 c++을 이용해서 해보도록 하겠다.

#include<iostream>

using namespace std;

int main() {
    int arr[5];
    
    for(int i=0; i<5; i++) {
        arr[i] = i;
    }
    
    return 0;
}

배열의 선언은 위의 코드에서 int arr[5];와 같이

"자료형 배열명[배열의 크기]"의 형태로 선언한다.

 

배열에 값을 저장하는 방법은 배열에 인덱스를 통해 접근해 값을 할당하는 것이다.

예를 들어 위의 코드에서는 for문을 통해 인덱스에 접근하여 각 인덱스에 i의 값을 저장하였다.

 

출력 결과를 확인하면 다음과 같다.

배열에 값 저장

위에서 예로 들었던 코드에서 배열에 값을 저장하는 법을 확인할 수 있다.

for(int i=0; i<5; i++) {
    arr[i] = i;
}

이를 보면 "배열명[인덱스]"와 같이 배열에 인덱스를 통해 접근하고, 값을 할당하는 것을 볼 수 있다.

int arr[5] = {10, 11, 12, 13, 14, 15};
cout << arr[0] << endl; // 10
cout << arr[1] << endl; // 11
cout << arr[2] << endl; // 12

2차원 배열

위에서 봤던 배열들은 하나의 인덱스로 구분되는 1차원의 배열이다.

(x, y)로 구분되는 2차원 상에서의 배열에 대해 알아보자.

행렬을 2차원 배열로 표시하면 다음과 같다.

위를 배열을 선언하기 위한 코드는 다음과 같다.

#include<iostream>

using namespace std;

int main() {
	int arr[3][3];

	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			arr[i][j] = i * 3 + j;
		}
	}

	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			cout << arr[i][j] << " ";
		}
		cout << endl;
	}

	return 0;
}

다음을 출력해보면 다음과 같이 나온다.

2차원 배열에서의 인덱스는 다음과 같다.

1차원 배열과 같이 인덱스를 통해 접근할 수 있고, 값을 저장할 수 있다.

728x90

댓글