Например, в Паскале, все переменные при создании инициализируются нулевыми значениями или их заменителями. Например, числа будут равны 0, строки будут пустыми, логические переменные будут иметь значение FALSE и т.п.
Но вот в С/С++ это почему-то не так. В этих языках при создании переменной под неё просто выделяется свободная память. И если в этой памяти раньше что-то было, то это “что-то” будет и в новой переменной. То есть при создании переменной в С/С++ в ней может оказаться мусор. Поэтому в С/С++ крайне желательно все переменные инициализировать, то есть записывать в них какие-то значения при создании.
И если с обычными переменными это делается просто, например, так:
int i = 0;
то с инициализацией массивов справится не каждый новичок.
Первое, что приходит на ум - это перебрать элементы массива в цикле и записать в каждый какое-то значение. Например:
int M1[3];
for (int i = 0; i < 3; i++) M1[i] = 0;
Этот способ рабочий и вполне пригодный. Однако, если ваш массив содержит не сто тысяч элементов, то более наглядным будет инициализировать массив при объявлении, как это мы делали с переменной. Например:
int M2[3] = {5, 10, 15};
То есть мы объявляем массив как обычно, а его предустановленные значения заключаем в фигурные скобки и перечисляем их через запятую.
При таком объявлении можно не указывать размерность массива (она будет вычислена автоматически):
int M3[] = {10, 0, 12, 16};
Правда, в этом случае вам придётся соображать, сколько элементов содержит массив. Но в некоторых случаях можно вычислить длину массива, например, так:
int size = sizeof(M3) / sizeof(int);
Здесь мы размер массива делим на размер его элемента и таким образом получаем количество элементов. Однако это не самое лучшее решение.
Если вам надо инициализировать массив, в котором все его элементы будут иметь нулевое значение, то необязательно перечислять все элементы. Можно сделать так:
int M4[4] = {0};
Правда, с другими числами (не с нулями) это почему-то не работает.
Ну и в конце на картинке соберу кратко то, о чём было рассказано выше:
Кстати, если вы обратили внимание на имя исходного файла, то заметили, что этот код написан на чистом Си. Но и в С++ это тоже будет работать, конечно.
Однако есть одна особенность - изначально в С не было цикла for. Поэтому, если вы попытаетесь скомпилировать эту программу, например, в Dev-C++, то компилятор выдаст ошибку. Устранить эту неприятность можно, переведя компилятор в режим стандарта С99, который уже поддерживает циклы for.
Делается это через меню СЕРВИС - ПАРАМЕТРЫ КОМПИЛЯТОРА. Где надо добавить -std=c99 (см. рис. ниже):
Если ваша программа на С++, а не на С, то ничего этого делать не обязательно, так как С++ с самого начала поддерживает циклы for.
На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.