Дефиниране на масиви
Масивите са производни типове, които представляват колекция от стойности с еднакъв тип. За даден тип T
, типът T[size]
представлява типът масив от size
елемента от типа T
.
Например:
1 2 | T tarray[10]; int iarray[42]; |
В ред 1 е дефиниран масив от 10 елемента от типа T
. В ред 2 е дефиниран масив от 42 елемента от типа int
.
Изразът size, който определя размера на масива, трябва да бъде константен израз. Елементите на масива се индексират с числата от 0 до size-1
. Например:
1 2 3 4 | int iarr[42]; iarr[0]=1; iarr[41]=42; iarr[42]=43; // грешка! |
Индексът на първият елемент на масива iarr
е нула (виж ред 2), индексът на последния 42-ри елемент на масива е 41 (виж ред 3). Използването на размера на масива като индекс е грешка (виж ред 4).
Многомерните масиви в C и C++ се дефинират като масиви от масиви. Например, ако е необходим двумерен масив, то декларацията е следната:
1 | int d2[5][10]; |
Инициализация на масив
Началните стойности на елементите на даден масив, могат да се присвоят като се използва списък от стойности.
1 2 | int iarr[4]={0,1,2,3}; char carr[6]={ 'H' , 'e' , 'l' , 'l' , 'o' , '\0' }; |
Когато се използва инициализация на елементите на масива, то размерът на масива може да се пропусне. В такъв случай размерът на масива се определя от броя на елементите в инициализиращия списък. Например:
1 2 | int v[]={1,2,3,4}; char ac[]={ 'a' , 'b' , 'c' }; |
Дефинираният в ред 1 масив има 4 елемента, а дефинираният в ред 2 – 3 елемента.
Обърнете внимание, че когато размерът на масива е указан явно, инициализирането на масива със списък, съдържащ повече елементи е грешка.
1 | int v[2]={1,2,3}; // Грешка! |
Ако в списъка за инициализация на масива броят на елементите е по-малък от размера на масива, то на неинициализираните елементи се присвоява стойност по подразбиране. Следната инициализация
1 | int v[4]={1,2}; |
е еквивалентна на
1 | int v[]={1,2,0,0}; |
Pingback: CPP-101: Кратък обзор на езика за програмиране C++ | Записки по програмиране