GeeksforGeeks
int const*
int const* è puntatore a un numero intero costante
Ciò significa che la variabile dichiarata è un puntatore, che punta a un numero intero costante. In effetti, ciò implica che il puntatore punta a un valore che non dovrebbe essere modificato. Il qualificatore Const non influisce sul puntatore in questo scenario, quindi il puntatore può puntare a un altro indirizzo.
La prima parola chiave const può andare su entrambi i lati del tipo di dati, quindi int const* è equivalente a const int*.
int *const
int *const è un puntatore costante a integer
Ciò significa che la variabile dichiarata è un puntatore costante che punta a un numero intero. In effetti, ciò implica che il puntatore non dovrebbe puntare a qualche altro indirizzo. Il qualificatore Const non influisce sul valore di integer in questo scenario, quindi il valore memorizzato nell’indirizzo può essere modificato.
const int* const
const int* const è un puntatore costante a un numero intero costante
Ciò significa che la variabile dichiarata è un puntatore costante che punta a un numero intero costante. In effetti, ciò implica che un puntatore costante punta a un valore costante. Quindi, né il puntatore dovrebbe puntare a un nuovo indirizzo né il valore a cui è puntato dovrebbe essere cambiato.
La prima parola chiave const può andare su entrambi i lati del tipo di dati, quindi const int* const è equivalente a int const* const.
Memory Map
Un modo per ricordare la sintassi (secondo Bjarne Stroustrup) è la regola a spirale-
La regola dice, inizia dal nome della variabile e passa in senso orario al puntatore o al tipo successivo. Ripeti fino alla fine dell’espressione.
La regola può anche essere vista come decodifica della sintassi da destra a sinistra.
Quindi,
- int const* è un puntatore const int
- int *const è un puntatore const int
- const int* const è un puntatore const const int
Utilizzando questa regola, anche complessi, le dichiarazioni possono essere decodificati come,
- int * * * * * const è un const puntatore a puntatore a int.
- int * const * è un puntatore a const puntatore a un int.
- int const ** è un puntatore a un puntatore a un const int.
- int * const * const è un puntatore const a un puntatore const a un int.
Lettore di attenzione! Non smettere di imparare ora. Entra in possesso di tutti gli importanti concetti di C++ Foundation e STL con i corsi C++ Foundation e STL ad un prezzo adatto agli studenti e diventa pronto per l’industria.