자료구조

[자료구조] 배열(Array)

JunsuKim 2023. 9. 23.
728x90

배열

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

[자료구조] 배열(Array) - undefined - 배열

주소값을 확인해보면 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의 값을 저장하였다.

 

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

[자료구조] 배열(Array) - undefined - 배열의 선언

배열에 값 저장

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

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차원 배열로 표시하면 다음과 같다.

[자료구조] 배열(Array) - undefined - 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;
}

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

[자료구조] 배열(Array) - undefined - 2차원 배열

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

[자료구조] 배열(Array) - undefined - 2차원 배열

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

728x90

댓글