Ce înseamnă inițializarea unei matrice cu un stivuitor de elemente în rusă

Există un următor lanț de citări din standardul C ++ care explică modul în care elementele de matrice sunt inițializate când matricea de tip

Primul lucru la care ar trebui să acordați atenție este că matricele aparțin tipurilor de agregate. Prin urmare, ne adresăm secțiunii, unde este descrisă inițierea tipurilor de agregate 8.5.1 Agregate:







7 Dacă există mai puține clase de inițializatori în listă, atunci fiecare membru nu este inițializat în mod explicit sau, dacă nu există nici un breloc-sau-egalizator, din o listă de inițializări goale (8.5.4).

Acest extras din standard spune că dacă inițializatorii sunt mai mici decât elementele din matrice, atunci elementele de matrice care nu au un inițializator explicit sunt inițializate ca și cum ar fi niște bretele goale goale pentru fiecare element. Adică, poate fi reprezentată după cum urmează







Acum, să examinăm standardul pentru o explicație, ceea ce înseamnă că atunci când există bretele goale goale. În paragraful 3 al secțiunii 8.5.4 Inițializarea listei este scrisă

- În caz contrar, dacă lista de inițializatori nu are elemente, obiectul este inițializat cu valoare

Și ce înseamnă valoarea inițializată înseamnă. Acest lucru este scris în secțiunea 8.5 Initializers standard

8 Pentru a initializa valoarea unui obiect de tip T inseamna:

- altfel, obiectul este zero-inițializat.

Și, în sfârșit, conceptul de mijloace inițializate zero (inițiatorii 8.5)

6 Pentru inițializarea zero a unui obiect sau referință de tip T înseamnă:

- dacă T este un tip scalar (3.9), obiectul este inițializat la valoare transformând integerul literal 0 (zero) în T;

Adică toate elementele matricei care nu au fost inițializate în mod explicit sunt inițializate la zero. Prin urmare, în final, această intrare

este echivalent cu următoarea intrare:

Și, în cele din urmă, obținem înregistrarea

Rețineți că în C ultimele două intrări nu sunt echivalente. Pentru C, scrieți

este incorectă și compilatorul va afișa un mesaj de eroare.







Articole similare

Trimiteți-le prietenilor: