Diferența Dintre Indicator și Matrice

Diferența Dintre Indicator și Matrice
Diferența Dintre Indicator și Matrice

Video: Diferența Dintre Indicator și Matrice

Video: Diferența Dintre Indicator și Matrice
Video: ОБЪЯСНЯЕМ: OLED, AMOLED, POLED - В ЧЕМ РАЗНИЦА? 2024, Mai
Anonim

Pointer vs Array

Un pointer este un tip de date care conține o referință la o locație de memorie (adică o variabilă de pointer stochează o adresă a unei locații de memorie în care sunt stocate unele date). Tablourile sunt structura de date cea mai frecvent utilizată pentru a stoca o colecție de elemente. Majoritatea limbajelor de programare oferă metode pentru a declara cu ușurință tablouri și a accesa elementele din tablouri.

Ce este un indicator?

Un indicator este un tip de date care stochează adresa unei locații de memorie în care sunt stocate unele date. Cu alte cuvinte, un pointer deține o referință la o locație de memorie. Accesarea datelor stocate în locația de memorie la care se face referire prin pointer se numește dereferențiere. Atunci când efectuați operații repetitive, cum ar fi traversarea copacilor / șirurilor, căutărilor de tabele etc., utilizarea pointerilor ar îmbunătăți performanța. Acest lucru se datorează faptului că dereferențierea și copierea indicatoarelor este mai ieftină decât copierea efectivă și accesarea datelor indicate de indicatori. Un indicator nul este un indicator care nu indică nimic. În Java, accesarea unui pointer nul ar genera o excepție numită NullPointerException.

Ce este o matrice?

Afișat în figura 1, este o bucată de cod utilizată de obicei pentru a declara și atribui valori unei matrice. Figura 2 descrie cum ar arăta o matrice în memorie.

valori [0] = 100;

valori [1] = 101;

valori [2] = 102;

valori [3] = 103;

valori [4] = 104;

Figura 1: Cod pentru declararea și atribuirea valorilor unui tablou

100 101 102 103 104 Index: 0 1 2 3 4

Figura 2: Matrice stocată în memorie

Codul de mai sus definește o matrice care poate stoca 5 numere întregi și sunt accesate folosind indici de la 0 la 4. O proprietate importantă a matricei este aceea că întreaga matrice este alocată ca un singur bloc de memorie și fiecare element primește propriul spațiu în matrice. Odată ce o matrice este definită, dimensiunea sa este fixă. Deci, dacă nu sunteți sigur de dimensiunea matricei la momentul compilării, va trebui să definiți o matrice suficient de mare pentru a fi în partea sigură. Dar, de cele mai multe ori, vom folosi de fapt un număr mai mic de elemente decât le-am alocat. Deci, o cantitate considerabilă de memorie este de fapt irosită. Pe de altă parte, dacă „matricea suficient de mare” nu este de fapt suficient de mare, programul s-ar bloca.

Care este diferența dintre pointeri și matrice?

Un pointer este un tip de date care stochează adresa unei locații de memorie în care sunt stocate unele date, în timp ce matricele sunt structura de date cea mai frecvent utilizată pentru a stoca o colecție de elemente. În limbajul de programare C, indexarea matricei se face folosind aritmetica indicatorului (adică elementul i al matricei x ar fi echivalent cu * (x + i)). Prin urmare, în C, setul de indicatori care indică un set de locații de memorie care sunt consecutive, poate fi gândit ca un tablou. Mai mult, există o diferență în modul în care operează mărimea operatorului pe pointeri și tablouri. Atunci când este aplicat unui tablou, operatorul sizeof va returna întreaga dimensiune a tabloului, în timp ce atunci când este aplicat unui pointer, acesta va returna doar dimensiunea indicatorului.

Recomandat: