Iniţializarea tablourilor

În mod implicit, tablourile nu sunt iniţializate, deci niciunul dintre elementele sale nu va conţine o valoare anume. Această operaţie trebuie făcută explicit, precizând valorile iniţiale, închise între acolade. Iată un exemplu: int val[5]={0, 0, 1, 1, 2}; Reprezentarea acestui tablou poate fi făcută astfel: Evident, numărul valorilor dintre acolade nu trebuie să depăşească numărul de elemente ale vectorului, în exemplul nostru 5. Dacă, declarând tabloul cu cinci elemente, îl iniţializăm cu mai puţine valori, să zicem trei, primele elemente vor avea valorile precizate, iar următoarele vor fi iniţializate cu valorile implicite. În cazul tipurilor fundamentale, acestea sunt zero. Dacă am face următoarea iniţializare: int val[5]={1, 2, 3}; tabloul ar arăta precum în figura de mai jos: Prin urmare, iniţializarea unui vector cu valor nule, dacă este declarat peste un tip elementar, poate fi făcută cel mai simplu, astfel: int val[5]={}; Trebuie precizat şi că numărul elementelor poate fi lăsat necompletat, caz în care, compilatorul va dimensiona tabloul cu numărul elementelor scrise între acolade. Iată un exemplu: int val[]={1, 2, 3, 4, 5}; După această declarare, tabloul a va avea 5 elemente.

Să mai precizăm că C++ permite şi o iniţializare universală pentru tablouri, folosirea semnului egal nemaifiind necesară. Prin urmare, declarea anterioară poate fi scrisă: int val[]{1, 2,3, 4, 5}; În fine, să reţinem că tablourile declarate direct într-un namespace, în afara oricărei funcţii, sunt întotdeauna iniţializate. În absenţa unei iniţializări explicite, toate elementele sunt iniţializate cu valorile implicite, zero, în cazul tipurilor fundamentale.