Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Массивdata




Начала

Пример

Общая форма объявления массива

Возрастание адресов

Массивы

Большинством объектов языка Си, с которыми мы имели дело, были переменные. Каждая переменная при объявлении получала тип и имя, с которым связывалась определенная ячейка памяти. Однако расположение значений переменных по адресам памяти никак не упорядочивалось. При решении многих задач, особенно с большим количеством однотипных данных, использование переменных с различными именами, а значит не упорядоченных по адресам памяти, затрудняет или делает вообще невозможным програмирование. В подобных случаях в языке Си используют объекты, называемые массивами.

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


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

>

 

...     ... п-2 п-1 ...

Массив data[n], n — константа

Рис. 1.4 Пример

data[2]=32;

/^Второму элементу массива */ /*с именем data присваивается */ /^значение 32.*/

Элементы массива могут употребляться в программе так же, как и простые переменные.

При объявлении массива нужно обязательно указать общее количество элементов, чтобы ЭВМ могла выделить память под весь массив.

тип имя[размер массива];

float data[245];

Здесь массив содержит 245 элементов типа float: data[0], data[\], data[2],..., data[244].


Связь массивов и указателей

Имя массива фактически является константой-указателем на начальный адрес данных — на адрес расположения элемента массива с нулевым индексом.

Графическое представление массива в памяти ЭВМ представлено на рис. 1.5, где data — адрес начала массива; sizeojidatd) — размер массива data в байтах; sizeojifloat) — размер памяти под один элемент массива в байтах; р\ и р! — указатели для работы с массивом.

Начальный адрес массива определяется компилятором в момент его объявления, и такой адрес никогда не может быть изменен. Адрес массива можно узнать, если вывести на экран значение константы с именем массива или вывести адрес нулевого элемента массива. Это значение можно присвоить указателю, имеющему другое имя, а затем, наращивая значение этого указателя, обращаться по выбору к любому элементу массива. Следовательно, в ряде случаев операции с массивами можно свести к операциям с указателями.

Возрастание адресов

о


Адрес

массива



 


о


р1 = data р2 = р1 + i

4 *


 


дпошаШЭЕ!





Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 342; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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