При объявлении массива имеется возможность задать значения элементам массива.
Синтаксис объявления массива с инициализацией:
тип имя_массива [размер]={список_инициализации};
где список_инициализации – последовательность значений, перечисленных через запятую.
Пример 7.
const int N=5;
short A[N]={2,5,6,-3,1};
char C[N]={'H','E','L','L','O'};
В массиве А элементы равны: A[0]=2, A[1]=5, A[2]=6, A[3]=-3, A[4]=1.
В массиве C элементы равны: C[0]=’H’, C[1]=’E’, C[2]=’L’, C[3]=’L’, C[4]=’O’.
Также допускается ситуация, когда количество значений меньше количества элементов в массиве, тогда остальные элементы, которые явно не проинициализированы, получают значение 0.
Когда в списке инициализации указано больше значений, чем количество элементов в массиве, то это будет ошибкой компиляции.
В массиве А элементы равны: A[0]=2, A[1]=5, A[2]=0, A[3]=0, A[4]=0.
В массиве C элементы равны: C[0]=’H’, C[1]=0, C[2]=0, C[3]=0, C[4]=0.
В массиве B элементы равны: B[0]=0, B[1]=0, B[2]=0, B[3]=0, B[4]=0.
Чтобы проинициализировать элементы массива 0, то обязательно необходимо задать хотя бы первый элемент как 0, а все остальные неявно проинициализируются 0.
Если массив объявляется за пределами функции (глобальный), то при его объявлении все элементы по умолчанию изначально равны 0.
Если массив объявляется внутри функции или другого блока, то его элементы не инициализируются по умолчанию и будут содержать «мусор» (те значения, которые хранились в выделенном участке памяти).
При объявлении одномерного массива разрешается не указывать количество элементов, а по списку инициализации будет вычислен размер памяти, который необходим для хранения такого массива.
Пример 9.
int A[]={1,2,9,8,7,6,4};
short B[]={1,1,1,2,2,2};
Массив А состоит из 7 элементов, и для его хранения требуется 7*4=28 байт оперативной памяти.
Массив В состоит из 6 элементов, а для его хранения требуется 6*2=12 байт.
Для определения в программе, сколько же элементов содержит массив можно воспользоваться следующей формулой: