Студопедия — Инициализация числовых и символьных массивов.
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Инициализация числовых и символьных массивов.






Инициализация - это задание начальных значений объектов программы при их определении, проводится на этапе компиляции.

Инициализация одномерных массивов возможна двумя способами: либо с указанием размера массива в квадратных скобках, либо без явного указания:

int test [ 4] = { 10, 20, 30,40 };

char ch [ ] = { ‘a’, ‘b’, ‘c’, ‘d’ };

Список инициализации помещается в фигурные скобки при определении массива.

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

Во втором случае инициализация должна быть полной, и количество элементов массива компилятор определяет по числу значений в списке инициализации.

Рассмотрим инициализацию многомерных числовых массивов. Массив любой мерности в С++ рассматривается как одномерный. Например, массив:

int B [3] [2] [4] – трактуется какодномерный массив из трех элементов - двумерных массивов (матриц) int [2] [4], с именами B[0], B[1], B[2], каждый из этих массивов трактуется как одномерный массив, состоящий из двух одномерных массивов (векторов) int [4].

Располагаются элементы массива в ОП естественно одномерно: сначала располагаются все элементы первой матрицы, как было описано выше, затем второй и третьей. При определении, например, трехмерного массива инициализация его элементов может проводиться либо с учетом внутренней структуры массива, отделяя двумерные и одномерные массивы фигурными скобками, либо списком значений в соответствии с расположением элементов в оперативной памяти:

int B [ 3 ] [ 2 ] [ 4] = { { {1, 2, 3, 4}, {5, 6, 7, 8} },

{ {9, 10, 11, 12}, {13, 14, 15, 16} },

{ {17, 18, 19, 20}, {21, 22, 23, 24} } };

эквивалентно:

{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, 23, 24 };

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

сhar stroka [10] = ''строка'';

При такой инициализации компилятор запишет в память символы строковой константы и добавит в конце двоичный ноль '\0’, при этом памяти будет выделено с запасом (10 байт).

Можно объявлять символьный массив без указания его длины:

char stroka1 [ ] = ''строка'';

Компилятор, выделяя память для массива, определит его длину, которая в данном случае будет равна 7 байтов (6 байтов под собственно строку и один байт под завершающий нуль).

Инициализация двумерных символьных массивов проводится следующим образом:

сhar name [5] [18] = {''Иванов'', ''Петров'', ''Розенбаум'', ''Цой'', ''Григорьев''};

При объявлении символьного массива будет выделено памяти по 18 байтов на каждую строку, в которые будут записаны символы строки и в конце каждой строки добавлен байтовый ноль, всего 90 байтов. При таком объявлении в массиве остается много пустого места.

При определении многомерных массивов с инициализаций (в том числе и двумерных) значение первого индекса в квадратных скобках можно опускать.

Количество элементов массива по первому измерению компилятор определит из списка инициализации. Например, при определении:

char sh [ ] [40] = {''===================================='',

''| F | F | F | F | F |'',

''====================================''};

компилятор определит три строки массива по 40 элементов каждая, причем sh[0], sh[1], sh[2] – адреса этих строк массива в оперативной памяти. В каждую из строк будет записана строковая константа из списка инициализации.







Дата добавления: 2015-08-12; просмотров: 606. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Принципы, критерии и методы оценки и аттестации персонала   Аттестация персонала является одной их важнейших функций управления персоналом...

Пункты решения командира взвода на организацию боя. уяснение полученной задачи; оценка обстановки; принятие решения; проведение рекогносцировки; отдача боевого приказа; организация взаимодействия...

Что такое пропорции? Это соотношение частей целого между собой. Что может являться частями в образе или в луке...

Образование соседних чисел Фрагмент: Программная задача: показать образование числа 4 и числа 3 друг из друга...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия