Un puntatore può anche puntare ad una struttura. Nei più moderni linguaggi questo è l'uso comune tanto che in Java e Javascript ogni struttura/oggetto è in realtà in puntatore. Dai un occhio al seguente codice:
#include <iostream>
using namespace std;
// Copyright @ ZHIQIANG ZHOU
// definisce una struttura d'esempio
struct Esempio {
int a;
char b;
};
int main() {
struct Esempio x;
struct Esempio *p; // puntatore a struttura
struct Esempio *p2; // Un altro puntatore a struttura
p = &x; /* prende l'indirizzo della struttura da ora in poi, *p e x sono la stessa cosa */
p2 = p; // se modifico p2 modifico anche p1 e x
(*p).a=12;
cout << "Valore di x.a: " << x.a << endl;
x.b='z';
cout << "Valore di x.b: " << (*p).b << endl;
// -> equivale a "(* )."
cout << "Valore di x.b: " << p->b << endl;
// Dà lo stesso valore di prima
cout << "Valore di x.b: " << p2->b << endl;
return 0;
}
Bello, vero? Utilizzare la "->" è il sogno di chiunque!
Attività:
delete
uno dei tre puntatori della lista?Maggiori informazioni su un sito di puntatori
Buon lavoro!