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

선언

자료형 배열명[배열 크기];
int score[10]

  • int 형 변수 1개의 메모리 크기가 4byte
    • score[10]같은 경우 40바이트
  • 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];