Какво е масив
Array - комплекс (композитен структуриран) тип данни, който се характеризира както следва:
· Елементи масива са от същия вид, за разлика от структурите, така че всеки елемент на масива заема същото количество памет;
· Array намира в RAM, вместо на външното устройство, като файлове (втора сесия);
· Масиви елементи заемат съседни клетки, за разлика, например, от списъците (2-ро заседание).
Достъп до елементите на масив в C ++ се извършва по два начина.
На първо място, с помощта на серийния номер на елемента на масива, който се нарича индекса. типична за много езици за програмиране и се счита за първия семестър. Тя е по-прост и познат на тези, които са изучавали езика Паскал. B, включително постоянна или променлива може да се използва или експресията на тип съвместими с тях като индекс. Индексът не може да се използва като израз на недвижими тип.
Масивите могат да имат един или повече размери. В този раздел ще разгледаме едномерна масива, което понякога се нарича вектор, което означава, вектор в наш тримерно пространство. Работата с двуизмерни решетки (матрици) се счита в Chap. 5. Три или повече размери на практика рядко се използват, тъй като такива масиви заемат голямо количество RAM.
В това, което следва, думата "масив", имаме предвид едномерен масив.
От гледна точка на времето (фаза), когато паметта е предназначена за масива, има два вида от тях. Памет за динамичния масив се разпределя по време на изпълнение, и ако не е необходима на масива, паметта може да бъде освободен до него. Такива масиви се разглеждат през второто полугодие.
А един едномерен масив с фиксиран размер (я наричаме статичен) е обявен в общ вид, както следва:
Тук, вида - вида на елементите в масива. Първоначално, ние ще разгледаме простите видове (инт, поплавък, знак), но можете да използвате на комплекса, като конструкцията. Името написано на правилата на идентификатори. Всеки елемент на масива е със същото име, като единствената промяна код или артикул номер. N - размери (или размер) на масива като цяло число постоянно или постоянна експресия. Тази стойност се определя броят на клетките на RAM запазени за масива. Например:
поплавък А [10]; или конст п = 10; поплавък А [п];
За разлика от динамичен масив за статично компилация време памет е запазено за настаняване на споменатата N брой тип (10, imoti). За множество памет изисква обем к * N байта (4 х 10), където К - брой байтове, необходими за настаняване на един елемент от този тип (един вид плаващо). Тази памет се запазва по време на програмата, или по-скоро функция или блок, който описва масива. Софтуер изисква капацитет на паметта се определя чрез операция на sizeof както следва:
М = sizeof (тип) * N; или М = sizeof (наименование); или М = име sizeof;
където М - число променлива, която определя размера на масива в байтове. Въведете непременно написано в скоби, а името може да бъде без скоби. Следващият програмата показва два пъти повече от 40.
поплавък А [10]; Int М1, М2;
M1 = sizeof (флоат) * 10; // но M1 = sizeof плава * 10 - Грешка!
М2 = sizeof (А); // или М2 = sizeof А;
В много съвременни програмни системи, включително C ++, номерацията на елементи в масива започва с 0. След това [М-1] - последния елемент на масива. Това включва използването на указатели, когато се занимават с масиви (вж. 2-ри сесия). Следователно, в този пример, индексът варира от 0 до 9, включително, тоест индекса на последния елемент на масива е един по-малко от неговия размер. Обявените 10 масив елементи са определени както следва: [0], А [1], А [2], ..., А [9]. В C ++, няма граници проверка масив. Възможно е да се излиза извън рамките на своите граници и напишете стойността в променлива, или дори в програмния код. Такъв контрол трябва да се грижи за програмист.
Ако използвате статични масиви имат проблеми, ако размерът на масива предварително, ние не знаем. В този случай, ние заявяваме масив от максималния размер, който е широко известно. Истинският измерение и да се въведат по-нататъшна употреба, например, в цикли, както и за други цели:
конст Nmax = 100; поплавък X [Nmax];
Int п; Cout<<”Input the size of array ”; cin>> N;
/ * D alshoy работа с п (а не от Nmax) на елементите на масив, например, да ги въведе. * /
за (INT I = 0; и // Тази линия може да бъде намалена заедно с скоби. Този метод е по-лесно, но е неефективен точка разпределение на паметта на оглед, като "книги" повече памет, отколкото действителна употреба. В такива случаи най-професионално използват по-ефективни динамични масиви (вж. 2-ри сесия).