русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Массивы строк

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

Для хранения списка символьных строк используется двумерный массив размером n´s, где n – максимальное количество строк (студентов в группе, инструментов в наборе), s – максимальное количество символов в строке с учетом символа окончания строки ‘\0’.

Например,

char name[25][30];

Для хранения массива name в оперативной памяти будет отведено 750 байт непрерывного пространства для хранения 25 строк длиной не более 30 символов каждая (с учетом символа окончания строки).

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

char name[25][30] = {

{“Строка 1”},

{“Строка 2”},

:

:

{“Строка n”}

};

Внешние скобки ограничивают сам массив, а совокупность внутренних скобок { и } ограничивают текст каждой строки. Учитывая, что символы “ являются ограничителями символьной строки, то вместо внутренних скобок можно использовать символы “.

Например,

char g[3][15] = {

“Иванов И. И.”,

“Антонов Л. А.”,

“Попов С. М.”,

};

Для экономии оперативной памяти и избежания переполнения выделенного пространства под строку (что приводит к потери конечных символов, в том числе символа окончания строки ‘\0’) применяют описание совокупности строк с использованием одномерного массива указателей, размер которого равен числу инициализируемых строк.

Например,

char *pg[3] = {

“Иванов И. И.”,

“Антонов Л. А.”,

“Попов С. М.”,

};

Такое описание определяет массив, где количество строк равно количеству инициализируемых строк, а количество столбцов каждой строки массива определяется количеством символов в ней плюс символ окончания строки ‘\0’.

В оперативной памяти выделяются ячейки как для хранения массива указателей, так и для хранения списка строк.Схема выделения оперативной памяти имеет вид

                                   
  pg[0] pg[1] pg[2]                          
                                   
  pg[0]                              
                                   
  И в а н о в   И .   И . \0        
                                   
  pg[1]                              
                                   
  А н т о н о в   Л .   А . \0      
                                   
  pg[2]                              
                                   
  П о п о в   С .   М . \0          
                                   
                                                                       

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

Просмотров: 372


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.