- 동일한 종류, 동일한 자료형의 데이터를 메모리에 일련의 구조화된 집단으로 구성한 것
- 배열을 사용하지 않는다면 각각의 값에 따라 모두 변수선언을 해야할 것
선언
자료형 배열명[배열 크기];
int score[10]

- int 형 변수 1개의 메모리 크기가 4byte
- index는 0번 부터 시작
초기화
int a[3]; //선언
a[0] = 10;
a[1] = 15;
a[2] = 20;
int a[3]= {10, 15, 20};
int a[3] = {10, 15, 20, 30}; // 오류
// 원소개수를 표시하지 않고 자동으로 원소가 생성되게 하는 예
int a[] = {5, 25, 18, 6, 8};
// 초기값을 따로 할당하는 것은 오류 발생
int a[];
a[0] = 5;
a[1] = 25;
a[2] = 18; // 오류

1차원 배열
- 대괄호([]) 1개로 선언하는 배열
- 배열을 반복문과 함께 사용하면 유용
- 반복문의 초기값을 설정할 때, 배열의 원소는 0부터 시작함
#include <stdio.h>
int main() {
int i;
int a[] = {5, 10, 15};
for(i = 0; i<3; i++)
{
printf("a[%d] = %d\n", i, a[i]);
}
return 0;
}
// 프로세스가 시작되었습니다..
> a[0] = 5
a[1] = 10
a[2] = 15
// 프로세스가 종료되었습니다.
2차원 배열
- 연속적인 저장 공간을 선언하는 배열에서 1차원 뿐만 아니라 2차원 이상도 가능

int a [2][3] = {{10, 20, 30}, {40, 50, 60}};
int a [2][3] = {10, 20, 30, 40, 50, 60};
int a [][3] = {10, 20, 30, 40, 50, 60}; // True
int a [][3] = {10, 20, 30, 40}; // True
int a [2][] = {10, 20, 30, 40, 50, 60}; // False
int a [][] = {10, 20, 30, 40, 50, 60}; // False
다차원 배열
int a[2][2][2];
int b[2][2][2][2];