Menu
Coddy logo textTech

Puntatori const

Lezione 5 di 14 del corso Puntatori in C++ di Coddy.

Un puntatore costante è un puntatore il cui valore (l’indirizzo di memoria a cui punta) non può essere modificato dopo l’inizializzazione. Tuttavia, il valore nella posizione di memoria a cui punta può essere modificato. Esistono due tipi principali di puntatori quando parliamo di puntatori costanti

  • Puntatore a una costante - punta a un valore costante
  • Puntatore costante - punta costantemente a un valore

Allora, qual è la differenza


1. Puntatore a una costante

Questo tipo di puntatore punta a un valore costante. Il valore non può essere modificato tramite il puntatore. Ciò significa che è un puntatore normale che punta semplicemente a un valore costante; con questo puntatore, è possibile modificare l’indirizzo a cui punta.

int a = 5, b = 10;
// Puntatore a un int costante
int const * ptr = &a;
 
// Questo è consentito:
ptr = &b; // Modifica dell'indirizzo
 
// Questo non è consentito:
*ptr = 10; // Tentativo di modificare un valore costante

2. Puntatore costante

Un puntatore costante punta a un valore non costante, ma il puntatore stesso non può essere modificato per puntare a un indirizzo diverso: ha un indirizzo di puntamento costante

int a = 5, b = 10;
// Puntatore costante a un int
int * const ptr = &a;

// Questo è consentito:
*ptr = 10; // Modifica di un valore non const

// Questo non è consentito:
ptr = &b; // Tentativo di modificare un indirizzo costante

Come puoi vedere, la parola chiave const viene posizionata prima di * per un puntatore a un valore costante e dopo * per un puntatore costante a un valore non costante. Potremmo anche combinarli e avere un puntatore costante a un valore costante: lo faremmo con due parole chiave const, prima e dopo l’asterisco, ma raramente avremmo bisogno di questa situazione

quiz iconMettiti alla prova

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

quiz iconMettiti alla prova

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

quiz iconMettiti alla prova

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

challenge icon

Sfida

Facile

Leggi due numeri dall’input, crea un puntatore costante constPtr e un puntatore a costante ptrConst, inizializza constPtr in modo che punti al primo numero e poi modifica il suo valore impostandolo al secondo numero, e imposta l’indirizzo di ptrConst in modo che punti al secondo numero

Provalo tu

#include <iostream>

using namespace std;

int main() {

    // Enter code here


    // DO NOT CHANGE THE CODE BELOW
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    if(&a == constPtr)
        cout << "&a == constPtr" << endl;
    if(&b == ptrConst)
        cout << "&b == ptrConst" << endl;

    return 0;
}

Tutte le lezioni di Puntatori in C++

Esercitati da solo: Compilatore C++ online