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

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

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






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

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

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; просмотров: 600. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Характерные черты немецкой классической философии 1. Особое понимание роли философии в истории человечества, в развитии мировой культуры. Классические немецкие философы полагали, что философия призвана быть критической совестью культуры, «душой» культуры. 2. Исследовались не только человеческая...

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

Опухоли яичников в детском и подростковом возрасте Опухоли яичников занимают первое место в структуре опухолей половой системы у девочек и встречаются в возрасте 10 – 16 лет и в период полового созревания...

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