이 예제에서 배열 a, b, c는 모두 정수 값 1, 2, 3, 4, 5를 저장합니다. 그러나 배열 c는 5개의 정수를 저장하는 반면, 10개의 정수를 저장할 공간을 할당받았습니다. 배열의 크기는 10이고 정수형, 변수 하나는 4바이트이므로 총 4 × 10 = 40바이트입니다. 5개의 정수를 저장하는 데 배열 c와 같이 배열 크기를 10개로 설정하는 것은 메모리 낭비입니다. 그러므로 다섯 개의 정수만 저장한다면 배열 c보다는 배열 a 또는 b와 같이 선언하는 것이 현명한 방법입니다.
그러면 크기가 30인 배열 변수 a를 선언하고 모두 0으로 초기화하려면 어떻게 해야 할까요?
int a[30] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
위와 같이 배열을 선언하고 0으로 초기화하면 된다고 배웠습니다. 하지만 조금 보기가 불편하네요. 게다가 0을 하나 더 쓰거나 덜 쓰는 등 실수가 발생할 소지가 큽니다, 이는 다음 코드와 같이 간결하게 선언과 동시에 초기화할 수 있습니다.
int a[30] = { 0, };
이렇게 코드를 작성하면 컴파일러가 a[0]부터 a[29]까지 모두 0으로 자동으로 초기화해 줍니다. 편리하죠?