**배열의 특성
- 연속된 메모리 공간에 같은 타입의 데이터를 저장하는 구조
- 배열의 이름은 연속된 메모리 공간의 첫 번째 주소이다
- 배열은 중괄호 식을 통해 초기화 한다.
- 배열 선언 시에는 상수를 사용하여 배열 크기를 지정 해야 함
- 배열 생성 이후에는 인덱스를 지칭하는 변수를 사용 할 수 있다
- sizeof 연산자에 배열의 이름을 넣으면 전체 배열의 크기를 계산 할 수 있다.
빠른 탐색이 장점(random access : 임의 접근)
한계
- 개수를 정해 놓고 사용해야 함
- 맨 앞이나 중간의 메모리를 추가, 삭제하는 것이 불가능 [begin, end) : 반개 구간
int Arr[3]={1,2,3};
Arr : 배열의 이름
[]: 배열 연산자, 인덱스 연산자 : 연속적인 메모리 공간의 사용을 의미
3: 배열의 크기
index: 배열에 저장되는 메모리 번호
블럭 단위 데이터 : 중괄호 식을 이용하여 메모리 값 초기화
cout<<Arr[0]<<endl<<Arr[1]<<endl<<Arr[2]<<endl;
.
.
.
.
<out>
1
2
3
int Arr[5]={1,2,3,4,5}
배열의 크기를 구하는 방법
size() 함수
cout<<size(Arr)<<endl;
.
.
.
<out>
5
범위 기반 for문
for(int i : Arr){ 배열 Arr의 크기만큼 반복
....
}
**배열과 포인터
int Arr[3]={1,2,3};
for(int i : Arr){
cout<<(*Arr)<<endl;
Arr++; - 불가능 / 배열 이름에 연산을 할 수 없음
}
void Test(int arr[]); - 배열의 이름을 함수 인자로 전달 할 때는 []를 사용한다(int* arr와 같은 의미)
**2차원 배열(다차원 배열)
int Arr[2][3]={
{1,2,3},
{4,5,6}
};
**2차원 배열 포인터
int Arr[2][3];
int (*pArr)[3]=Arr;