C에서 반복 값 배열 초기화하기
배열(Array)은 동일한 데이터 타입의 여러 값을 하나의 이름으로 관리할 수 있게 해주는 자료구조입니다. 그런데 실제 개발 과정에서는 같은 값이 여러 번 반복되는 상황이 자주 발생합니다. 예를 들어 3, 3, 3, 3처럼 동일한 숫자를 연속해서 저장해야 하는 경우입니다.
이럴 때마다 일일이 값을 나열하면 코드가 길어지고 실수할 가능성도 커집니다. 이를 위해 C 언어(GCC 계열 컴파일러)는 범위 지정 초기화 문법을 제공하여 프로그래머의 작업 부담을 크게 줄여줍니다.
문법(Syntax)
[시작 인덱스 ... 끝 인덱스]반복할_값 예시 : 3을 5번 반복하여 저장하는 경우 [0 ... 4]3
즉, 대괄호 안에 시작 인덱스와 끝 인덱스를 마침표 세 개(...)로 구분하여 적고, 뒤에 반복할 값을 붙이면 해당 범위의 모든 요소가 같은 값으로 한 번에 초기화됩니다.
예제 코드(Example)
#include <stdio.h>
int main() {
int array[10] = {[0 ... 4]3, [6 ... 9]5};
for (int i = 0; i < 10; i++)
printf("%d ", array[i]);
return 0;
}위 코드에서는 인덱스 0부터 4까지는 3으로, 인덱스 6부터 9까지는 5로 초기화했습니다. 인덱스 5는 지정하지 않았으므로 자동으로 0이 됩니다.
실행 결과(Output)
3 3 3 3 3 0 5 5 5 5
참고 사항
[start ... end] 형태의 범위 지정자는 표준 C 문법이 아니라 GCC(GNU Compiler Collection)에서 제공하는 확장 기능입니다. 따라서 GCC나 Clang처럼 GNU 확장을 지원하는 컴파일러에서만 사용할 수 있으며, MSVC 등 다른 컴파일러 환경에서는 호환되지 않으니 이식성이 중요한 프로젝트라면 사용에 주의해야 합니다.