Se dichiaro in un file di intestazione, ad esempio, extern unsigned long * Ptr;
e il valore di questo puntatore Ptr nel file linker.
Questo indirizzo sarà 'costante'? Posso cambiare il suo valore?
extern unsigned long *Ptr;
Puoi scrivere sia su Ptr
(punta a un nuovo oggetto) che su *Ptr
(aggiorna la cosa puntata).
extern const unsigned long *Ptr;
extern unsigned long const *Ptr;
Puoi scrivere su Ptr
(punta a un nuovo oggetto), ma non puoi scrivere su *Ptr
.
extern unsigned long * const Ptr;
Puoi scrivere su *Ptr
(aggiorna la cosa puntata), ma non puoi scrivere su Ptr
.
extern const unsigned long * const Ptr;
extern unsigned long const * const Ptr;
Non puoi scrivere su Ptr
o *Ptr
.
In tutti i casi, il valore di &Ptr
non cambia.
Ovviamente, ciò presuppone una dichiarazione che definisce corrispondente per Ptr
.
Leggi altre domande sui tag c