Declararea matricelor
Ca orice vector, o matrice trebuie declarată înainte de a fi folosită. Declararea îi rezervă în memorie un număr fix de locații și stabilește tipul de dată al elementelor, pe două dimensiuni: linii și coloane.
Sintaxa declarării
Forma generală a declarării unei matrice este:
tip_data nume_matrice[nr_linii][nr_coloane];
Componentele sunt:
tip_data: tipul comun al tuturor elementelor (int,float,charetc.);nume_matrice: numele prin care ne referim la matrice și la elementele ei;nr_liniișinr_coloane: numărul maxim de linii, respectiv de coloane.
Observăm că, față de vector, apare o a doua pereche de paranteze pătrate, câte una pentru fiecare dimensiune. Iată câteva exemple:
int a[101][201], n, m; // o matrice de intregi, plus doua variabile
float x[10][10]; // o matrice patratica de numere reale
short f[2][100];
Ca și la vectori, o matrice declarată global conține valoarea 0 pe toate pozițiile, în timp ce una declarată local conține inițial valori reziduale, aleatorii.
Referirea la un element
Pentru a folosi un element al matricei scriem a[i][j], unde primul indice, i, reprezintă linia, iar al doilea, j, reprezintă coloana. Ordinea contează: a[2][5] este elementul de pe linia 2 și coloana 5, complet diferit de a[5][2].
Ca și la vectori, numerotarea începe de la 0: într-o matrice cu n linii și m coloane, indicii de linie merg de la 0 la n-1, iar cei de coloană de la 0 la m-1.
Declararea cu valori implicite
La fel ca un vector, o matrice poate fi declarată direct cu valorile completate. Avem două forme echivalente.
1. Pe linii, folosind acolade imbricate. Fiecare grup de acolade reprezintă o linie:
int a[2][3] = { {1, 2, 3}, {4, 5, 6} };
Aici matricea are 2 linii și 3 coloane: prima linie este 1 2 3, a doua 4 5 6. Această formă este cea mai clară, pentru că structura din cod seamănă cu structura matricei.
2. Ca o listă simplă de valori. Elementele se completează linie cu linie, în ordine, sub o singură pereche de acolade:
int a[2][3] = { 1, 2, 3, 4, 5, 6 };
Compilatorul așază valorile în ordine, umplând mai întâi prima linie, apoi a doua și așa mai departe. Cele două declarări de mai sus produc exact aceeași matrice.
Dacă scriem mai puține valori decât încap (mai puține de nr_linii * nr_coloane), pozițiile rămase sunt completate automat cu 0.