русс | укр

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

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

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

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


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

Массивы


Дата добавления: 2013-12-23; просмотров: 797; Нарушение авторских прав


Указатели

Динамические структуры

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

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

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

В интернете адреса URL, используемые для связи с гипертекстовыми документами, указывают местоположение в сети интернет, то есть являются указателями.

В программировании используются массивы. Они состоят из однотипных переменных. Количество переменных известно заранее при объявлении массива. Каждая переменная занимает одинаковое количество ячеек памяти, так как переменные однотипные. Следовательно, если записать элементы массива подряд в память, то начало каждого следующего элемента будет отстоять от начала предыдущего на Х ячеек. Тогда элемент номер К будет отстоять от начала массива на Х*(К-1) ячеек памяти.

Таким образом, если указатель на массив содержит адрес начала массива, то есть адрес ячейки, в которой начинается первый элемент массива, то адрес ячейки, в которой начинается К-й элемент массива, будет отстоять от адреса начала массива на Х*(К-1) ячеек памяти.

При объявлении большого количества отдельных, но однотипных переменных для них выделяются ячейки в памяти для хранения их значений. При этом каждой переменной соответствует адрес. Хранение этого адреса также занимает место в памяти. Теоретически, хранение адресов может занимать больше места, чем хранение значений переменных некоторых типов.



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

Если массив двумерный, например A(n,m), то его можно разместить в памяти в виде непрерывной последовательности элементов, то есть как одномерный из такого же количества элементов. Тогда к элементу A(i,j) компьютер будет обращаться так: от начала массива требуемый элемент отстоит на (i-1)*m+(j-1) элемент, и если каждый элемент занимает Х ячеек памяти, то от значения указателя на массив (от адреса начала первого элемента) требуемый элемент A(i,j) отстоит на Х*((i-1)*m+(j-1)) ячейку. Выражение, позволяющее вычислить адрес нужного элемента массива, называют адресным полиномом.

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

При обращении к массиву, фактически программа обращается к ячейке памяти, где хранится указатель на массив. Указатель содержит адрес первой ячейки массива (адрес его первого элемента).



<== предыдущая лекция | следующая лекция ==>
Статические структуры | Поддержка абстрактного списка


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


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

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

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


 


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

 
 

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

Генерация страницы за: 0.003 сек.