Можно было бы написать еще проще
int small[26]= {}, large[26]={}, i;
Фигурные скобки означают список инициализаторов в данном случае массивов.
Предположим, например, что вы хотите определить массив с элементами 1, 2, 3, 4, 5.
Вы могли бы написать
int a[5];
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
a[4] = 5;
Однако C++ позволяет назначать элементы массива, когда он определен. Эквивалентная запись будет выглядеть
int a[5] = { 1, 2, 3, 4, 5 };
Если инициализаторов меньше размера массива, то остальные элементы будут инициализированы нулями. Например
int a[5] = { 1, 2 };
В этом случае a[0] будет равно tp 1 a[1] будет равно 2, а все остальные элементы будут равны 0.
Вы можете опустить размер массива. Например
int a[] = { 1, 2, 3, 4, 5 };
В этом случае компилятор выделит столько элементов массива, сколько инициализаторов в списке инициализаторов.
Запись (допустима только в C++. В C не разрешена)
int a[5] = {};
эквивалентно
int a[5] = { 0 };
то есть все элементы массива будут инициализированы 0. В последней записи первый элемент явно инициализирован нулем, и все остальные элементы также инициализированы нулем, потому что их инициализаторы в списке инициализаторов не были указаны.
Таким же образом вы можете инициализировать и скалярные объекты. Например
интервал х = {10};
С той лишь разницей, что для скалярных объектов можно указать только один инициализатор. Вы даже можете писать без оператора присваивания
int x { 10 };
Вы также можете написать
int x {};
В этом случае x будет инициализирован 0.
person
Vlad from Moscow
schedule
16.04.2014
0
. Это не так. Здесь у вас есть инициализатор, и он использует указанные значения, если они есть, для инициализации соответствующих элементов массива и инициализирует остальную часть массива нулем (или значением по умолчанию типа). - person Cheers and hth. - Alf   schedule 17.04.20140
является целочисленным литералом; не переменная. - person M.M   schedule 17.04.2014