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 costante2. 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 costanteCome 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
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Sfida
FacileLeggi 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++
1Fondamenti dei puntatori
Introduzione ai puntatoriDichiarazione e inizializzazioneAritmetica - AssegnazioneAritmetica - OperazioniPuntatori constPuntatori e array2Puntatori e riferimenti
Puntatori come parametriRiferimenti - &Riferimenti come parametriPuntatori vs riferimenti3Allocazione dinamica della memoria
Operatori new e deleteMemory leakArray dinamicoArray dinamico - inserimentoEsercitati da solo: Compilatore C++ online