더북(TheBook)

나머지 타입에 대한 초기자는 반드시 중괄호로 묶어야 한다. 예를 들어 배열 초기자는 원소마다 지정할 수 있으며 각각 콤마로 구분한다.

double A[] = { 7.8 };
double B[3] = { 2 * A[0], 7, 33, };
double C[] = { [0] = 6, [3] = 1,};

 

▲ 그림 5-4 배열 초기자

앞의 코드에서 길이가 구체적으로 지정되지 않은 불완전 타입(incomplete type)C 배열에 초기자를 지정하면 구체적인 길이가 결정된다. 세 배열 중에서 A는 원소가 하나뿐이지만 C는 네 개로 구성된다. AB에서 각 원소에 대해 스칼라 초기화를 수행할 값은 초기자 목록에 나온 순서에 따라 결정된다. 가령 B[1]7로 초기화된다. 하지만 C처럼 지정 초기자(designated initializer)를 사용하는 것이 가장 바람직하다. 그러면 선언문이 바뀌더라도 영향을 받지 않아서 코드가 좀 더 견고해진다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.