더듬이의 헬로월드

Hello, World!

프로그래밍 언어/C++ [기본]

[C++기본] 8.배열

더듬이 2021. 8. 25. 19:36
728x90

배열이란?

배열이란 같은 자료형으로 이루어진 갯수가 정해진 모임이라고 생각할 수 있다.

배열은 메모리 영역에 일렬로 할당되며, 인덱스(번호)는 0부터 시작합니다!


배열의 기본 형

int array[10]={};

위 코드에서는 int형 자료형으로 10개의 변수를 선언하고, 각 값들을 0으로 초기화 해주었다는 뜻을 의미한다.

그럼 개별 요소들은 어떻게 접근할까?

배열은 인덱스을 통해 각 원소에 접근한다.

array[0]=10;
array[1]=20;
array[2]=30;
array[3]=40;
array[4]=50;
array[5]=60;

주의 할 점이 있다. 배열의 첫번째 인덱스는 1번째가 아니라 0번쨰부터 시작한다.

배열의 메모리는 연속적으로 할당된다

변수를 선언하면 메모리 영역에서는 그 변수의 자료형에 따라 크기별로 공간이 할당된다.

배열은 메모리 할당 시에는 한 묶음으로 자료형 크기 * 배열의 개수 만큼 할당하게 된다.

예를 들어, int형 배열 10개를 선언했다면, 4 * 10 = 40

40바이트 공간 만큼의 영역이 10개로 쪼개져서 할당되는 것이다!!

⇒나중에 포인터의 개념과 결합하여 생각할 수 있다.


배열의 문제점

int array1[10]={};
array1[12]=10;
int array2[100]=[]

array1의 마지막 인덱스는 array1[9]이다.

위 코드에서의 array1[12]에 접근하면 원래 오류가 나야 정상이다.

하지만 이 코드는 때에 따라서 오류가 안 날 수 있다.

왜??

연속적인 메모리 할당으로 array1[12]의 공간이 array2의 배열 중 한군데와 겹칠 수 있기 때문!

따라서 인덱스를 조심해야 이를 방지 할 수 있다.

728x90

'프로그래밍 언어 > C++ [기본]' 카테고리의 다른 글

[C++기본] 10.지역 변수와 전역 변수  (0) 2021.08.26
[C++기본] 9.구조체  (0) 2021.08.26
[C++기본] 7.함수  (0) 2021.08.25
[C++기본] 6.변수  (0) 2021.08.25
[C++기본] 5.반복문  (0) 2021.08.25