Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Декларация, инициализация и индексирование




В декларациях массивам может приписываться класс памяти – static, auto или extern.

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

Пример

static int ndigit[] = {0, 0, 0, 0};

Под массив выделяется 4 ячейки, инициируемые 0-ми значениями.

 

Многомерные статические и внешние массивы также можно инициировать на основе вложенных списков в фигурных скобках.

Если явная инициация отсутствует, гарантируется, что элементы внешних и статических массивов будут иметь значение 0; автоматические массивы будут заполнены «мусором». Если инициирующих значений меньше, чем указанный размер массива, то остальные элементы получат нулевые значения. Если же значений слишком много, то это ошибка.

Пример

static double [2][3] = {{1, 2, 3}, {4, 5, 6, 7}}; // ошибка!!!

 

Контроль допустимости значения индекса массива в процессе выполнения программы не выполняется.

Пример

int a[10], bad;

………………

bad = a[10]; /*выход за пределы индекса не контролируется*/

Для автоматического массива большая вероятность того, что случайное значение будет занесено в ячейку bad. Для внешнего массива тоже большая вероятность такого исхода. Все зависит от того, куда адресуется индексированная переменная a[10]. Если сегмент защищен по чтению, то будет прерывание. Обычно защита только по записи.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных