Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Объявление массива присваивает имя массива и задает тип его элементов. Он также может определить количество элементов в массиве. Переменная с типом массива считается указателем на тип элементов массива.
Синтаксис
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