
1. 배열이란?
물리적으로 연속된 공간에 동일한 타입의 자료가 저장되어 있는 구조. * 여러 개의 변수를 하나로 묶어놓은 것으로 동일하고 연속된 타입의 데이터를 저장하고 싶으면 배열을 사용한다. * 배열은 벡터
2. 배열의 특징
특징1. 연속된 데이터는 메모리상 붙어있어야한다. 붙어있기 때문에 (바로 위에 있기때문에) 빨리 찾을 수 있고, 빨리 읽을 수 있다. 속도가 빠르다는 (액세스가 빠르다.) 장점이 있다. 벡터에서 제일 빠른게 바로 배열. 특징2. 배열의 크기는 내가 임의로 늘릴 수 없다. 배열은 한 번 생성되면 크기가 고정된다. 애초에 처음부터 '연속된 공간을 미리 확보' 했어야한다. ex. 집평수 20평이면 충분하다고 샀는데 부족하다고 갑자기 30평으로 뚫어달라고 하면 가능한가? ㄴㄴ

3. 배열을 사용하는 이유
풀스캔을 위해서. 빠르게!!! 빠르게 읽게 하려고. 배열보다 빠르게 읽어주는 것은 없다.
4. 배열의 형태
<배열 선언> 1. 타입[] 변수명; 2. 타입 변수명[];
int[] arr = new int[3]; * new가 있으니 heap(동적)에 띄웠다는 말. * 초기화와 동시에 선언. (위에는 선언만 한 것)

* 공간을 몇 개 쓸건지 미리 확보해야하기 때문에 [3] (3칸) 이라고 적어줬다. * 메모리에서 12byte 크기의 빈 공간을 찾아 (int니까 [ 4byte * 3 = 12byte ]) 확보한다. * 시작점인 4번부터 그대로 쭉—— (연속된 공간이니) 12칸을 읽는다. 그래서 빠르다.
타입(int 등)이 없는 언어는 배열이 불가능하다. (자바스크립트, 파이썬은 배열 불가능)

arr[0], arr[1] 와 같이 배열의 번호를 index라고 부른다.
해당 코드는 에러가 발생!
기존에 할당된 공간이 3칸이라 (arr[0], arr[1], arr[2]) 데이터를 4칸에 넣어서 에러가 뜬다.
>> 에러코드

+) 배열은 0부터 시작한다.

Share article