Инициализацию массива можно проводить одновременно с его объявлением. Для этого после объявления массива вместо; нужно поставить знак = и в фигурных скобках через запятую указать значения элементов массива.
Примеры инициализации одномерных массивов.
1) int a[5] = {1,2,3,4,5}; // a[0]=1, a[1]=2,…, a[4]=5
2) double b[]={2.1,3.0,1.12,4.44}; // Если размер массива не указан, то компилятор автоматически его вычислит по списку значений элементов
3) int с[4]={10,20};// с[0]=10, c[1]=20, значения остальных элементов массива не устанавливаются, они могут содержать любой мусор.
Размерность массива вместе с типом его элементов определяет объем памяти, необходимый для размещения массива. Если при объявлении массива не указана размерность, должен присутствовать инициализатор, в этом случае компилятор выделит память по количеству инициализируемых значений. Если при этом нужно будет установить размерность массива, то это можно сделать так:
const int n;
float x[]={1.1,2.2,3.3,4.4}; // Инициализация массива из 4 элементов
n = sizeof(x)/sizeof(x[0]); // Размер массива x делится на размер элемента массива
|
|
Размерность массива предпочтительнее задавать с помощью именованных констант, поскольку при изменении размерности придется вносить коррективы только в одном месте. Необходимо помнить, что попытка присвоить значение несуществующему элементу массива (то есть имеющему индекс больше, чем размерность массива минус 1) может приводить к непредсказуемым последствиям, так как это значение будет занесено в ячейку памяти с другими данными, и те будут безнадежно испорчены.
Для задания элементов массива нужно….
# include <stdio.h>
# include <time.h>
# include <stdlib.h>
void main()
{
float array[3];
srand(time(NULL));
for (int i = 0; i<3; i++)
{
array[i] = float(rand())/RAND_MAX;
printf("%3.2f\n", array[i]);
}
}