배열은 같은 이름을 가진 변수를 여러개 선언하는 것을 말합니다. 단순히 변수를 여러개 선언하는 대신 배열을 사용하는 이유는, 배열은 ‘인덱스’ 라는 것을 통해 편리하게 접근 할 수 있기 때문입니다.
배열의 편리성은 잠시 후 보도록 하고 배열의 선언 방법을 알아봅시다. 배열은 변수를 선언하는 것처럼 작성하고, 끝에 [크기] 를 붙여 선언할 수 있습니다. 여러 변수가 선언되는 것이므로 만약 선언과 동시에 할당을 하고 싶다면 중괄호를 열어 값을 전부 지정해주면 됩니다.
자료형 변수이름[크기];
자료형 변수이름[크기] = { 값, 값, 값, ... };
변수이름[인덱스];
#include <stdio.h>
int main()
{
int num[5] = { 3, 5, 6, 8, 2 };
printf("index 2 : %d\\n", num[2]);
printf("index 0 : %d\\n", num[0]);
printf("index 4 : %d\\n", num[4]);
return 0;
}
index 2 : 6
index 0 : 3
index 4 : 2
배열을 사용할 때에는 인덱스에 주의해야합니다. 위 예제에서는 배열의 크기를 5로 지정했지만, 배열에 있는 5가지 값을 접근하려면 0부터 4까지의 인덱스를 사용해야 합니다. 이는 컴퓨터가 배열의 인덱스를 0부터 세기 때문입니다.

만약 인덱스 범위를 넘어선 값을 접근하면 논리적인 오류가 발생합니다.
#include <stdio.h>
int main()
{
int num[5] = { 3, 5, 6, 8, 2 };
printf("%d", num[5]);
return 0;
}
478 (쓰레기 값이 출력됨)
배열의 모든 값을 한꺼번에 0으로 초기화하고 싶다면 아래와 같이 사용하면 됩니다.
#include <stdio.h>
int main()
{
int num[5] = { 0, };
for (int i = 0; i < 5; i++)
{
printf("%d ", num[i]);
}
return 0;
}
0 0 0 0 0
만약 0이 아닌 다른 값으로 초기화하고 싶다면 반복문을 활용하면 됩니다.
#include <stdio.h>
int main()
{
int num[5];
for (int i = 0; i < 5; i++)
{
num[i] = 4;
}
for (int i = 0; i < 5; i++)
{
printf("%d ", num[i]);
}
return 0;
}
4 4 4 4 4
위처럼 배열은 반복문과 결합했을 때 아주 강력하게 활용할 수 있습니다.