English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Manuale di base di C++

Controllo di Flusso C++

Funzione in C++

Array & Stringhe C++

Strutture dati C++

Classi & Oggetti C++

Puntatore in C++

Ereditarietà in C++

Manuale di STL di C++

Manuale di riferimento C++

Puntatore a struttura in C++

In questo articolo, troverai esempi pertinenti che ti aiuteranno a utilizzare i puntatori per accedere ai dati all'interno della struttura.

PuntatoreLe variabili possono essere create non solo per i tipi di dati nativi (int, float, double, ecc.), ma anche per i tipi di dati definiti dall'utente (comeStruttura) creazione.

Se non sai cosa sia un puntatore, visitaPuntatore C++.

Questo è il metodo per creare un puntatore di struttura:

#include <iostream>
using namespace std;
struct temp {
    int i;
    float f;
};
int main() {
    temp *ptr;
    return 0;
}

Questo programma crea un puntatore di tipo di struttura temp chiamato ptr.

Esempio: puntatore di struttura

#include <iostream>
using namespace std;
struct Distance
{
    int feet;
    float inch;
};
int main()
{
    Distance *ptr, d;
    ptr = &d;
    
    cout << "Inserisci piedi: ";
    cin >> (*ptr).feet;
    cout << "Inserisci pollici: ";
    cin >> (*ptr).inch;
 
    cout << "Mostra informazioni" << endl;
    cout << "Distanza = " << (*ptr).feet << " piedi " << (*ptr).inch << " pollici";
    return 0;
}

Risultato di output

Inserisci piedi: 4
Inserisci pollici: 3.5
Mostra informazioni
Distanza = 4 piedi 3.5 pollici

Il programma definisce il tipo di struttura Distance, che possiede il variabile puntatore *ptr e il variabile comune d.

L'indirizzo del variabile d è memorizzato nel variabile di puntatore, ovvero ptr punta al variabile d, quindi viene utilizzato il puntatore per accedere ai membri della funzione del variabile d.

Attenzione:Poiché il puntatore ptr in questo programma punta al variabile d, quindi (*ptr).inch e d.inch sono unità identiche. Allo stesso modo, (*ptr).feet e d.feet sono unità identiche.

La sintassi per accedere ai membri delle funzioni tramite puntatore è brutta, ma c'è un simbolo sostitutivo più comune->.

ptr->feet è equivalente a (*ptr).feet
ptr->inch è equivalente a (*ptr).inch