Com implementar indicadors a C ++?

Aquest article us presentarà el concepte de punteres en C ++ i després el seguirà amb una demostració pràctica de suport.

Punters a C ++ és una variable que conté l'adreça d'una altra variable en c ++. L'adreça s'emmagatzema a la variable punter i ajuda a la implementació de trucades per referència.



En aquest article es tractaran les següents indicacions,



Començant per aquest article sobre Punteres a C ++

Sintaxi:



tipus de dades * pointername EXEMPLE: int * ptr
  • Una variable punter té un signe * abans del seu nom.
  • Un punter també s’anomena localitzador o indicador.

Usos del punter:

arquitectura mvc a Java amb exemple
  • Assignació de memòria dinàmica
  • En diversos programes de matrius, estructura i funcions

Aquí teniu un exemple de codi:

#include using namespace std int main () {int num = 17 int * ptr ptr = & num cout<< 'Value at ptr = ' << ptr << 'n' cout << 'Value at var = ' << num << 'n' cout << 'Value at *ptr = ' << *ptr << 'n' } 

Sortida:
Output- Punters en C ++ - Edureka



Explicació:

Al programa anterior, mostrem el funcionament bàsic d’un punter. Tenim una variable enter num amb el valor 17. Tenim la variable punter ptr de tipus int. Assignem l'adreça de num al punter ptr.

Primer imprimim el valor de ptr, aquesta és l’adreça. A continuació, imprimim el valor num i, al final, imprimim el valor a la ubicació del punter ptr.

Continuem amb aquest article sobre Punters a C ++

Punteres i matrius:

Podem considerar el primer element d’una matriu com a punter, ja que el nom de la matriu conté l’adreça del primer element. Podem utilitzar un punter de la següent manera.

Aquí teniu un exemple de codi:

#include using namespace std int main () {int arr [3] = {5, 10, 20} int * ptr ptr = arr cout<< 'Elements of the array are: ' cout << ptr[0] << ' ' << ptr[1] << ' ' << ptr[2] } 
 Sortida: 

Explicació:

Al programa anterior, mostrem el funcionament bàsic d’un punter amb una matriu. Tenim una matriu arr amb valors 5,10,20. Tenim la variable punter ptr de tipus int. Assignem l'adreça d'arr al punter ptr.

Primer imprimim el valor de ptr [0], que és el primer element de la matriu. A continuació, imprimim el segon i el tercer element respectivament. Com que els elements de la matriu s’emmagatzemen consecutivament, el punter pot accedir a l’altra ubicació de la matriu mitjançant una incrementació.

Continuem amb aquest article sobre Punters a C ++

Punters nuls:

Hi ha el tipus de punteres que no tenen cap valor i tenen un valor nul

Exemple :

int * ptr = NUL

Són molt útils en estructures de dades com una llista enllaçada.

Continuem amb aquest article sobre Punters a C ++

Indicadors del buit:

Aquests són el tipus de punteres que no tenen un tipus de retorn.

Continuem amb aquest article sobre Punters a C ++

Operació aritmètica del punter:

Es poden realitzar diferents operacions en punteres. Aquí hi ha alguns tipus importants.

  • incrementat (++)
  • decrementat (-)
  • diferència entre dos indicadors (p1-p2)
  • addició d'un enter a un punter (+ o + =)
  • resta d'un enter d'un punter (- o - =)

Aquí teniu un codi per demostrar algunes d’aquestes operacions:

#include using namespace std int main () {int arr [3] = {10, 100, 200} int * ptr ptr = arr for (int i = 0 i<3 i++) { cout << 'Value at different locations of array using *ptr = ' << *ptr << 'n' ptr++ } } 

Sortida:

Explicació:

Demostrem l'operació aritmètica simple d'increment de la variable de punter que es mostra al programa anterior.

Continuem amb aquest article sobre Punters a C ++

Punter a punter:

En aquest tipus de sistemes, hi ha dues indicacions. El primer punter apunta al segon punter i el segon apunta a la variable que conté el valor.

Aquí teniu un exemple de codi:

#include using namespace std int main () {int num int * ptr int ** pptr num = 3000 ptr = & num pptr = & ptr cout<< 'Value of num :' << num<< endl cout << 'Value available at *ptr :' << *ptr << endl cout << 'Value available at **pptr :' << **pptr << endl return 0 } 

Sortida:

Continuem amb aquest article sobre Punters a C ++

Punter a funcions:

Aquesta és una manera de passar indicadors a les funcions. El paràmetre de funció s'ha de declarar com a tipus de punter. Es mostra al codi següent,

#include using namespace std float getAverage (int * arr, int size) int main () {int balance [5] = {1432, 232, 3232, 17, 502} float avg avg = getAverage (balance, 5) cout<< 'Average value is: ' << avg << endl return 0 } float getAverage(int *arr, int size) { int i, sum = 0 double avg for (i = 0 i < size ++i) { sum += arr[i] } avg = double(sum) / size return avg } 


Sortida

Així passem un punter a una funció.

Així hem arribat al final d’aquest article sobre ‘Punters en C ++’. Si voleu obtenir més informació, consulteu el per Edureka, una empresa d’aprenentatge en línia de confiança. està dissenyat per formar-vos tant per a conceptes bàsics com avançats de Java juntament amb diversos marcs Java com Hibernate & Spring.

Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest bloc i us respondrem el més aviat possible.