Dereferenza C++


Ottieni indirizzo e valore di memoria

Nell'esempio della pagina precedente, abbiamo utilizzato la variabile pointer per ottenere l'indirizzo di memoria di una variabile (usata insieme all'operatore di & riferimento ). Tuttavia, puoi anche utilizzare il puntatore per ottenere il valore della variabile, utilizzando l' *operatore (l' operatore di dereferenziazione ):

Esempio

string food = "Pizza";  // Variable declaration
string* ptr = &food;    // Pointer declaration

// Reference: Output the memory address of food with the pointer (0x6dfed4)
cout << ptr << "\n";

// Dereference: Output the value of food with the pointer (Pizza)
cout << *ptr << "\n";

Nota che il *segno può confondere qui, poiché fa due cose diverse nel nostro codice:

  • Quando viene utilizzato nella dichiarazione (string* ptr), crea una variabile puntatore .
  • Quando non viene utilizzato nella dichiarazione, funge da operatore di dereferenziazione .