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