Diferència entre matriu i punter

Autora: Laura McKinney
Data De La Creació: 1 Abril 2021
Data D’Actualització: 5 Ser Possible 2024
Anonim
Diferència entre matriu i punter - Tecnologia
Diferència entre matriu i punter - Tecnologia

Content


Hi ha una estreta relació entre matriu i punter. El punter es pot utilitzar per accedir als elements de la matriu i accedir a tota la matriu mitjançant l'aritmètica del punter fa que l'accés sigui més ràpid. Hi ha una diferència bàsica entre un punter i una matriu, és a dir, una matriu és una col·lecció de variables de tipus de dades similars mentre que el punter és una variable que emmagatzema l'adreça d'una altra variable. Hi ha algunes altres diferències entre una matriu i un punter que es discuteixen a continuació al gràfic de comparació.

  1. Gràfic de comparació
  2. Definició
  3. Diferències claus
  4. Conclusió

Gràfic de comparació

Bases per a la comparacióMatriuPunter
Declaració// En C ++
escriviu nom var_;
// En Java.
nom de tipus var;
nom_ var = nou tipus;
// En C ++
escriviu * nom_varia;
TreballEmmagatzema el valor de la variable de tipus de dades homogeni.Emmagatzemeu l'adreça de l'altra variable del mateix tipus de dades que el tipus de tipus de variables punter.
GeneracióEs pot generar un conjunt de punters.Es pot generar un punter a una matriu.
Suport JavaAdmetre el concepte de matriu.No admet els apunts.
EmmagatzematgeUna matriu normal emmagatzema valors de variable i la matriu punteja l'adreça de les variables.Els punters estan especialment dissenyats per emmagatzemar l'adreça de les variables.
CapacitatUna matriu pot emmagatzemar el nombre d'elements esmentats en la mida de la variable de matriu. Una variable de punter pot emmagatzemar l’adreça d’una sola variable alhora.


Definició de Array

Una matriu és la col·lecció dels elements del mateix tipus de dades, i tots aquests elements són referits amb un nom comú, que és el nom d'una variable de matriu. Es pot accedir a un element de matriu particular accedint a l'índex específic d'aquesta matriu on s'emmagatzema aquest element. Les matrius poden ser una matriu unidimensional, una matriu bidimensional o una matriu multidimensional. També es pot generar una matriu de punters, és a dir, una matriu que conté tota la variable com a variable de punter. A "C ++" les matrius estan assignades estàticament mentre que, a "Java", les matrius estan assignades dinàmicament.

// En tipus C ++ var_name; // En Java. nom de tipus var; nom_ var = nou tipus;

Aquí el "tipus" denota el tipus de dades d'una variable de matriu, "var_name" denota el nom donat a la variable de matriu, "mida" denota la capacitat de la variable de matriu, és a dir, quants elements del "tipus" es poden emmagatzemar en aquesta variable de matriu. . Hi ha dos mètodes per accedir a una matriu, primer "aritmètica de punter" i segon "indexació de matrius", dels quals "aritmètica punter" és més ràpida.


// accedint mitjançant l'aritmètica del punter Void display_array (int * S) {while (* s) {cout (<< "el valor és" << * s); * s ++; }}

Si feu servir "aritmètica de punter", funcionareu més ràpidament en comparació amb "indexació de matrius", és a dir, accedir a la variable de matriu mitjançant el seu índex. Si voleu passar una matriu de punters a una funció, es pot fer mitjançant el mateix mètode que feu servir per passar una matriu normal, és a dir, truqueu directament a la funció amb el nom de la matriu, sense cap índex.

Entenem-ho amb l’exemple

// Declaració de la matriu de punts. int * p;

Aquí, es mostra que "p" és una matriu de tipus enter, que contindrà l'adreça de 10 variables de tipus enter. Passem la matriu de punter anterior a una pantalla de funcions ().

mostrar (p); // Truqueu a la pantalla de funcions. void display (int * d) {// Funció que rep la matriu. for (int i = 0; i <10; i ++) {cout << ("índex" <

Aquesta funció mostrarà els valors presents en les variables, les adreces de les quals es guarden en aquesta matriu de forma seqüencial.

Definició de Pointer

El punter és una variable que conté l'adreça de memòria d'una altra variable. El tipus de dades de totes dues, la variable de punter i la variable, l'adreça que s'està assignant a una variable de punter, han de ser les mateixes. La variable de punter és tan declarada com segueix.

// Declaració en nom C ++ *;

Aquí, "type" és un tipus de tipus, "name" és el nom de la variable de l'apuntador. El "tipus" defineix quina mena d'adreça de variable es pot emmagatzemar en la variable punter. Per exemple, el punter sencer emmagatzemarà l'adreça de la variable sencera. Hi ha dos operadors punters "*" i "&". L'operador "*" retorna el valor situat a l'adreça que es guarda a la variable seguida del signe "*". L'operador "&" retorna l'adreça de la variable seguida del signe "&".

// per exemple int b = 10 int a = & b; // Aquí s’adreça l’adreça de b a la variable a. // deixa que l’adreça de b sigui 2000, així que ara a = 2000. int c = * a; // Aquí, la variable de punt sencer * a retornarà el valor que es troba a l'adreça emmagatzemada en un .ie. c = 10.

Només hi ha dos operadors aritmètics que podeu fer servir amb els punters, és a dir, la suma i la resta. Si s'aplica increment a una variable de punter enter, s'incrementarà per la mida del tipus de dades, és a dir, per 2 bytes, ja que és un punter enter, en incrementar-lo haurà d'apuntar la següent variable entera. El mateix passa amb la disminució.

// p és un punter sencer amb valor 2000. p ++; // ara p = 2002. p--; // ara p torna a contenir 2000 com a decrementat per dos bytes.

  1. Una matriu emmagatzema les variables de tipus de dades similars i els tipus de dades de les variables han de coincidir amb el tipus de matriu. D'altra banda, la variable punter emmagatzema l'adreça d'una variable, d'un tipus similar a un tipus de variable de punter.
  2. Podem generar una matriu de punters, és a dir, una matriu les variables són les variables de punter. D'altra banda, podem crear un punter que apunta a una matriu.
  3. Java suporta la matriu, però no és compatible amb els apunts.
  4. Una mida de matriu decideix el nombre de variables que pot emmagatzemar mentre que; una variable de punter pot emmagatzemar l'adreça de la única variable

Nota:

Java no admet ni evita estrictament els apunts.

Conclusió:

Quan necessitem treballar elements de dades de tipus de dades similars, en lloc de treballar per separat en variables, podem crear una matriu d’aquestes variables de tipus de dades similars i, després, operar-hi. Els punters són necessaris per a algun programa, proporciona una potència tremenda, però, malauradament, si un punter conté un valor incorrecte, serà l’error més difícil de trobar.