Масив (програмиране): Разлика между версии

Изтрито е съдържание Добавено е съдържание
Rayan111 (беседа | приноси)
Многомерни масиви
Ред 99:
type[] arrayName;
</source>
 
=== Многомерни масиви ===
За двумерен масив, елементите с индекси ''i'', ''j'' биха имали адрес ''B'' + ''c''.''i'' + ''d''.''j'', където коефициентите ''c'' и ''d'' са стъпките на увеличение съответно на реда и колоната.
 
По-общо, в ''k''-мерен масив, адресът на елемент с индекси ''i''<sub>1</sub>, ''i''<sub>2</sub>, …, ''i''<sub>''k''</sub> e:
''B'' + ''c''<sub>1</sub> · ''i''<sub>1</sub> + ''c''<sub>2</sub> · ''i''<sub>2</sub> + … + ''c''<sub>''k''</sub> · ''i''<sub>''k''</sub>.
 
Например: int a[3][2];
 
Това означава, че масивът е от тип int и има 3 реда и 2 колони. В него можем да съхраним 6 елемента, подредени линейно, започвайки от първия ред. Горепосоченият масив би бил съхранен в следния ред: a<sub>1</sub><sub>1</sub>, a<sub>1</sub><sub>2</sub>, a<sub>1</sub><sub>3</sub>, a<sub>2</sub><sub>1</sub>, a<sub>2</sub><sub>2</sub>, a<sub>2</sub><sub>3</sub>.
 
Тази формула изисква само ''k'' умножения и ''k'' събирания за който и да е масив, който може да се събере в паметта. Освен това, ако коефициентът е точна степен на 2, умноженията могат да се заместят с [[Побитова_операция|Побитови измествания]].
 
Коефициентите ''c''<sub>''k''</sub> трябва да бъдат такива, че всеки валиден индекс да води до адреса на определен елемент.
 
Ако минималната позволена стойност за всеки индекс е 0, то ''B'' е адресът на елемента, на който всички индекси са 0. Както при едномерните масиви, индексите на елементите могат да бъдат променяни, като се промени основния адрес ''B''. Следователно, ако двумерен масив има редове и колони с индекси от 1 до 10 и от 1 до 20 съответно, то тогава заменяйки ''B'' с ''B'' + ''c''<sub>1</sub> - &minus; 3 ''c''<sub>1</sub> ще преномерираме индексите на елементите на съответно от 0 до 9 и от 4 до 23. Възползвайки се от това свойство, някои езици за програмиране (като FORTRAN 77) задават индексите на масивите да започват от 1, както е традиционно математически, докато други езици (като Fortran 90, Pascal и Algol) позволяват на потребителя да избира минималната стойност на всеки индекс.
 
 
 
=== Характеристики на масивите ===