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.

Tag articolo:

C

Tag pratica:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.