Практика программирования (Бейсик, Си, Паскаль)

       

Инициализация массивов


Термином "инициализация" обозначают возможность задать начальные значения элементов массива без программирования соответствующих действий. Например, не прибегая к программным средствам типа присвоения значений в цикле или считывания данных из внешнего источника (файл, клавиатура, блок данных).

Средства такого рода имеются только в Си и Паскале. Здесь одновременно с объявлением массива можно задать начальные значения всех элементов массива или только нескольких первых его компонент:

char а[7]="Привет";

char b[7]={'П','р','и','в','е','т',0x00};

char с[]="Привет";

int d[10] = {1,2,3,4};

int f[2][3]={{1,2,3}, {4,5,6}};

В символьном массиве а формируются значения семи компонент, первые шесть из которых соответствуют кодам отображаемых символов заданной строки. Признак конца строки — байт с нулевым кодом — заносится в элемент а [6] автоматически. В отличие от этого в массиве ь, где значения элементов формируются посимвольно, такой признак конца программист должен задавать сам. Обратите внимание на третью строку, в которой отсутствует указание о размере массива. Компилятор Си сам сформирует нужное значение по количеству инициализирующих данных. В нашем случае под массив с будет отведено 7 байт, включая последний байт с нулевым кодом, завершающий каждую строку.

В Паскале инициализация производится в разделе const: const

a:string[7]='Привет';

d:array [1..10] of integer=(1,2,3,4);

f:array [1..2,1..3] of integer=((1,2,3),(4,5,6));

Инициализация глобальных и статических массивов в Си производится один раз при загрузке программы. Локальные массивы в функциях языка Си инициализируются при каждом обращении к функции.



Содержание раздела