Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Объявление массива присваивает имя массива и задает тип его элементов. Он также может определить количество элементов в массиве. Переменная с типом массива считается указателем на тип элементов массива.
Синтаксис
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, если присутствует, должно иметь целочисленный тип и значение больше нуля. Каждый элемент имеет тип, заданныйtype-specifier, который может быть любым типом, кромеvoid. Элемент массива не может быть типом функции.Вторая форма объявляет переменную, определенную в другом месте. Он опустит
constant-expressionаргумент в квадратных скобках, но не квадратные скобки. Эту форму можно использовать только в том случае, если вы ранее инициализировали массив, объявили его в качестве параметра или объявили его ссылкой на массив, который явно определен в другом месте программы.
В обеих формах direct-declarator присваивает имя переменной и может изменять тип переменной. Квадратные скобки ([ ]) после direct-declarator изменения декларатора на тип массива.
Квалификаторы типов могут отображаться в объявлении объекта типа массива, но квалификаторы применяются к элементам, а не к самому массиву.
Вы можете объявить массив массивов (многомерный массив), следуя декларатору массива со списком скобочных констант в этой форме:
type-specifierdeclarator[constant-expression][constant-expression]...
Каждый constant-expression из квадратных скобок определяет количество элементов в заданном измерении: двухмерные массивы имеют два квадратных выражения, трехмерные массивы имеют три и т. д. Вы можете опустить первое константное выражение, если вы инициализировали массив, объявили его в качестве параметра или объявили его ссылкой на массив, явно определенный в другом месте программы.
Можно определить массивы указателей на различные типы объектов с помощью сложных деклараторов, как описано в разделе "Интерпретация более сложных деклараторов".
Массивы хранятся по строке. Например, следующий массив состоит из двух строк с тремя столбцами:
char A[2][3];
Три столбца первой строки хранятся в первую очередь, а затем три столбца второй строки. Это означает, что последний подстрок меняется быстрее.
Чтобы ссылаться на отдельный элемент массива, используйте выражение подстрока, как описано в операторах postfix.
Примеры
В этих примерах иллюстрируются объявления массива:
float matrix[10][15];
Двухмерный массив с именем matrix содержит 150 элементов, каждый из которых имеет float тип.
struct {
float x, y;
} complex[100];
Этот пример представляет собой объявление массива структур. Этот массив содержит 100 элементов; каждый элемент — это структура, содержащая два элемента.
extern char *name[];
Эта инструкция объявляет тип и имя массива указателей charна . Фактическое name определение происходит в другом месте.
Специфично для Microsoft
Тип целочисленного числа, необходимого для хранения максимального размера массива, — это размер size_t.
Конец раздела, относящегося к Microsoft