Diferența dintre array și pointer

principala diferență între array și pointer este acel array este o structură de date care stochează o colecție de elemente de același tip de date în timp ce un pointer este o variabilă care deține adresa unei alte variabile din memoria calculatorului.

Array și pointer sunt două concepte folosite în limbaje de programare, cum ar fi C și C ++. O matrice este o colecție de date care deține un număr fix de valori ale aceluiași tip de date. De exemplu, pentru a stoca notele a 10 elevi, programatorul poate crea o matrice care poate stoca 10 numere întregi. Pe de altă parte, un pointer este o variabilă care deține adresa unei alte variabile. Indicatorii ajută la accesarea memoriei și la manipularea adreselor de memorie. 

Domenii cheie acoperite

1. Ce este o matrice
     - Definiție, funcționalitate
2. Ce este un Pointer
    - Definiție, funcționalitate
3. Relația dintre matrice și pointer
    - Schița Asociației
3. Diferența dintre array și pointer
    - Compararea diferențelor cheie

Termeni cheie

Array, Pointer

Ce este o matrice

O matrice este o structură de date care stochează un număr fix de elemente de același tip. Toate elementele matricei se află în locații de memorie contigue.

Figura 1: Array

Să presupunem că trebuie să stocați valori de 50 de numere întregi. Este posibil să creați variabile pentru fiecare număr întreg, dar este dificil și mai consumator de timp. O matrice poate fi folosită pentru a depăși această problemă.

numere int [50];

Instrucțiunea de mai sus va aloca o matrice numită numere, care poate stoca cincizeci de întregi. Un element specific al matricei poate fi evaluat utilizând indexul. Indicele de pornire este 0. Deoarece există 50 de elemente în matrice, elementul final are indexul 49.

numere [1] = 30;

Instrucțiunea de mai sus va atribui valoarea 30 la 1Sf indexul matricei numerelor.

Mai mult decât atât, este posibilă crearea de rețele de alte tipuri de date.

De exemplu, media dublă [10]; va crea o matrice numită medie. Poate stoca 10 valori duble.

O matrice este mai ușor de creat și mai ușor de accesat. Pe de altă parte, o matrice are o dimensiune fixă. Dacă dimensiunea matricei este de 10, ea nu poate fi utilizată pentru a stoca 20 de elemente. Cu alte cuvinte, alocarea memoriei pentru o matrice este statică.  

Ce este un Pointer

O variabilă este o locație de memorie pentru a stoca o valoare. Fiecare locație de memorie are o adresă pentru ao identifica.

Figura 2: Pointer

Un pointer este o variabilă care stochează adresa unei alte variabile. Indicatorul este declarat înainte de a stoca o adresă variabilă. Asteriscul * este folosit pentru a declara un pointer.

int * ptr;

Ptr este un pointer la o variabilă întreg.

dublu * ptr1;

Ptr1 este un pointer la o variabilă dublă. Consultați următorul cod.

Figura 3: Program cu indicatori

Variabila "a" conține valoarea 20. Ptr este un pointer la un număr întreg. În linia 8, ptr este atribuit cu adresa variabilei a. Acum ptr indică a. Prin urmare, printarea valorii indicate de ptr va da valoarea a.

Dacă nu există nici o adresă care să fie atribuită, pointerul poate fi atribuit cu o valoare NULL. Acest tip de pointer se numește pointerul nul.

int * ptr = NULL;

Relația dintre matrice și pointer

Consultați programul de mai jos.

Figura 4: Arrays cu pointeri

Există o matrice numită arr. Acesta conține 5 numere întregi. Ptr este un pointer la un număr întreg. În linia 8, arr este atribuit ptr. Prin urmare, ptr indică elementul index 0 al matricei. Imprimarea valorii ptr va afișa valoarea 0lea elementul index. Este 10.

Diferența dintre array și pointer

Definiție

Arra este o structură de date formată dintr-o colecție de elemente identificate fiecare de indexul matricei. Un pointer este un obiect de limbaj de programare care stochează adresa de memorie a unei alte valori aflate în memoria calculatorului.

Bază

În timp ce o matrice se referă la un set de elemente de date, un indicator este o variabilă care indică o altă locație de memorie.

Sintaxă

Array syntax - tipul de date arrayName [tipul de date];

Pointer sintaxă - tip de date * variable_name;

folosire

Deși arhivele pot fi utilizate pentru alocarea memoriei de dimensiuni fixe (memorie statică), pointerii pot fi utilizați pentru alocarea dinamică a memoriei.

Concluzie

Matricea și pointerul celor două termeni sunt două concepte de programare. Diferența dintre matrice și pointer este că o matrice este o structură de date care stochează o colecție de elemente de același tip de date în timp ce un pointer este o variabilă care deține adresa unei alte variabile din memoria calculatorului.

Referinţă:

1. "Arrays in C." Www.tutorialspoint.com, Tutorials Point, disponibil aici.
2. "Pointeri în C." Www.tutorialspoint.com, Tutorials Point, disponibil aici.

Datorită fotografiei:

1. "CPT-matrice de programare" Prin Pluke - Activitate proprie (CC0) prin Wikimedia Commons
2. "Pointeri" Acest fișier a fost realizat de către Utilizator: SvenTranslation Activitate proprie (CC BY-SA 3.0) prin Wikimedia Commons