Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Основные операции над массивами




Описание статических массивов

Описать статический массив в С(С++) можно так:



тип имя_переменной [размерность];



размерность — количество элементов в массиве. Например:



int x[10]; //Описание массива из 10 целых чисел. Первый

//элемент массива имеет индекс 0, последний 9.

float a[20]; //Описание массива из 20 вещественных чисел.

//Первый элемент массива имеет индекс 0, последний 19.



Размерность массива и тип его элементов определяют объём памяти, который необходим для хранения массива. Рассмотрим ещё один пример описания массива:



const int n=15; //Определена целая положительная константа.

double B[n]; //Описан массив из 15 вещественных чисел.



При описании статического массива в качестве размерности можно использовать целое положительное число или предопределённую константу.



Элементы массива в С(С++) нумеруются с нуля. Первый элемент всегда имеет номер ноль, а номер последнего элемента на единицу меньше заданной при его описании размерности:



char C[5]; //Описан массив из 5 символов, нумерация от 0 до 4.



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



имя_массива [индекс]



Например:



const int n=15;

double C[n], S;

S=C[0]+C[n-1]; //Сумма первого и последнего элементов массива С.



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



тип имя_переменной[размерность]={элемент_0, элемент_1,...};



Например:



float a[6] = { 1.2, (float) 3/4, 5./6, 6.1 };

//Формируется массив из шести вещественных чисел, значения элементам присваиваются по

//порядку. Элементы, значения которых не указаны (в данном случае a[4], a[5]), обнуляются:

//a[0]=1.2, a[1]=(float)3/4, a[2]=5./6, a[3]=6.1, a[4]=0, a[5]=0,

//для элементов a[1] и a[2] выполняется преобразование типов.



Рассмотрим, как хранится массив в памяти компьютера. Предположим, была описана переменная:



double x[30];



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



1.В соответствии с синтаксисом языка С(С++) записать x[0].

2.Применить операцию *x, так как адрес начала массива хранится в переменной x (по существу x — указатель на double).



Если к значению x добавить единицу (число 1), то мы сместимся на один элемент типа double. Таким образом, x+1 — адрес элемента массива x с индексом 1. К первому элементу массива x также можно обратиться двумя способами: x[1] или *(x+1). Аналогично, к элементу с индексом 2 можно обращаться либо x[2], либо *(x+2). Таким образом, получается, что к элементу с индексом i можно обращаться x[i] или *(x+i).



При обработке массива (независимо от способа обращения x[i] или *(x+i)) программист сам должен контролировать, существует ли элемент массива x[i] (или *(x+i)) и не вышла ли программа за границы массива.



Особенностью статических массивов является определение размера при написании текста программы. При необходимости увеличить размер массива, необходимо изменить текст программы и перекомпилировать её. При динамическом выделении памяти для массивов в С(С++) можно использовать указатели и операторы (функции




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


Дата добавления: 2015-06-25; Просмотров: 902; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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