"배열 선언"은 배열의 이름을 지정하고 해당 요소의 형식을 지정합니다. 배열의 요소 수를 정의할 수도 있습니다. 배열 형식의 변수는 배열 요소의 형식에 대한 포인터로 간주됩니다.
문법
declaration:
declaration-specifiers
init-declarator-list
선택;
init-declarator-list:
init-declarator
init-declarator-list
,
init-declarator
init-declarator:
declarator
declarator
=
initializer
declarator:
pointer
선택direct-declarator
direct-declarator:
direct-declarator
[
constant-expression
선택]
선택 사항이기 때문에 constant-expression 구문에는 다음 두 가지 형식이 있습니다.
첫 번째 폼은 배열 변수를 정의합니다. 대괄호 안의 인수는
constant-expression배열의 요소 수를 지정합니다.constant-expression있는 경우 정수 계열 형식과 0보다 큰 값이 있어야 합니다. 각 요소에는 지정된type-specifier형식이 있으며, 이 형식은 을 제외한void모든 형식일 수 있습니다. 배열 요소는 함수 형식일 수 없습니다.두 번째 양식은 다른 곳에서 정의된 변수를 선언합니다. 대괄호로 된 인수는 생략하지만 대괄호는 생략
constant-expression하지 않습니다. 이전에 배열을 초기화하거나, 매개 변수로 선언하거나, 프로그램의 다른 곳에서 명시적으로 정의된 배열에 대한 참조로 선언한 경우에만 이 양식을 사용할 수 있습니다.
두 양식 direct-declarator 에서 변수의 이름을 지정하고 변수의 형식을 수정할 수 있습니다. 다음 direct-declarator 의 대괄호([ ])는 선언자를 배열 형식으로 수정합니다.
형식 한정자는 배열 형식의 개체 선언에 나타날 수 있지만 한정자는 배열 자체가 아닌 요소에 적용됩니다.
이 형식의 대괄호로 묶인 상수 식 목록을 사용하여 배열의 배열("다차원" 배열)을 선언할 수 있습니다.
type-specifierdeclarator[constant-expression][constant-expression]...
각 constant-expression 대괄호 안에는 지정된 차원의 요소 수가 정의됩니다. 2차원 배열에는 두 개의 대괄호 식이 있고, 3차원 배열에는 3개 등이 있습니다. 배열을 초기화하거나, 매개 변수로 선언하거나, 프로그램의 다른 위치에서 명시적으로 정의된 배열에 대한 참조로 선언한 경우 첫 번째 상수 식을 생략할 수 있습니다.
더 복잡한 선언자 해석에 설명된 대로 복잡한 선언자를 사용하여 다양한 형식의 개체에 대한 포인터 배열을 정의할 수 있습니다.
배열은 행별로 저장됩니다. 예를 들어 다음 배열은 각각 세 개의 열이 있는 두 개의 행으로 구성됩니다.
char A[2][3];
첫 번째 행의 세 열이 먼저 저장되고 그 뒤에 두 번째 행의 세 개의 열이 저장됩니다. 즉, 마지막 아래 첨자는 가장 빠르게 달라집니다.
배열의 개별 요소를 참조하려면 후위 연산자에 설명된 대로 아래 첨자 식을 사용합니다.
예시
다음 예제에서는 배열 선언을 보여 줍니다.
float matrix[10][15];
명명된 matrix 2차원 배열에는 각각 형식이 있는 float 150개의 요소가 있습니다.
struct {
float x, y;
} complex[100];
이 예제는 구조체 배열의 선언입니다. 이 배열에는 100개 요소가 있습니다. 각 요소는 두 멤버를 포함하는 구조체입니다.
extern char *name[];
이 문은 포인터 배열의 형식과 이름을 선언합니다 char. 실제 정의 name 는 다른 곳에서 발생합니다.
Microsoft 전용
배열의 최대 크기를 유지하는 데 필요한 정수의 형식은 크기입니다 size_t.
Microsoft 전용 종료