Menu
Coddy logo textTech

Operatore di dereferenziazione

Fa parte della sezione Logica e flusso del percorso C++ di Coddy. Lezione 3 di 56.

Ora che sai ottenere un puntatore a una variabile, devi imparare ad accedere e modificare il valore all'indirizzo di memoria corrispondente. È qui che l'operatore di dereferenziazione (*) diventa fondamentale. L'operatore di dereferenziazione * viene usato per accedere al valore memorizzato all'indirizzo di memoria a cui punta un puntatore. Quando metti * prima di una variabile puntatore, «segue» l'indirizzo e ti restituisce il valore effettivamente memorizzato lì.Ricorda che l'operatore indirizzo di (&) viene usato per ottenere l'indirizzo di memoria di una variabile, mentre l'operatore di dereferenziazione (*) viene usato per accedere al valore a quell'indirizzo.
int number = 42;
int* ptr = &number;  // ptr memorizza l'indirizzo di number
int value = *ptr;    // value ora contiene 42
Puoi anche usare l’operatore di dereferenziazione per modificare la variabile originale tramite il puntatore. Quando assegni un nuovo valore a *ptr, stai in realtà modificando il valore memorizzato in quella posizione di memoria:
*ptr = 100;  // Modifica number portandolo a 100
// number ora vale 100, anche se lo abbiamo modificato tramite ptr
È questo accesso indiretto che rende i puntatori così potenti: puoi leggere e modificare le variabili da qualsiasi punto del programma, purché tu abbia un puntatore a esse.
challenge icon

Sfida

Facile

Crea un programma che dimostri l’operatore di dereferenziazione modificando il valore di una variabile tramite un puntatore.

Verranno forniti i seguenti dati in input:

  • Un intero che rappresenta il valore iniziale di una variabile
  • Un intero che rappresenta il nuovo valore da assegnare tramite il puntatore

Il tuo programma deve:

  1. Dichiarare una variabile intera denominata temperature e inizializzarla con il primo valore di input
  2. Creare un puntatore denominato tempPtr che punta alla variabile temperature
  3. Stampare il valore originale dereferenziando il puntatore
  4. Usare l’operatore di dereferenziazione per modificare il valore di temperature impostandolo al secondo valore di input tramite il puntatore
  5. Stampare il nuovo valore dereferenziando nuovamente il puntatore

Usa il seguente formato di output esatto:

Original value: [original value]
New value: [new value]

Provalo tu

#include <iostream>
using namespace std;

int main() {
    // Leggi i valori di input
    int initialValue, newValue;
    cin >> initialValue;
    cin >> newValue;
    
    // TODO: Scrivi il tuo codice qui sotto
    // 1. Dichiara la variabile temperature e inizializzala con initialValue
    // 2. Crea il puntatore tempPtr che punta a temperature
    // 3. Stampa il valore originale dereferenziando il puntatore
    // 4. Modifica il valore di temperature tramite il puntatore usando newValue
    // 5. Stampa il nuovo valore dereferenziando il puntatore
    
    return 0;
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C++ online