C ++ typedef interpretação de ponteiros const
Em primeiro lugar, códigos de exemplo:
Caso 1:
typedef char* CHARS;
typedef CHARS const CPTR; // constant pointer to chars
A substituição textual do CHARS se torna:
typedef char* const CPTR; // still a constant pointer to chars
Caso 2:
typedef char* CHARS;
typedef con,st CHARS CPTR; // constant pointer to chars
A substituição textual do CHARS se torna:
typedef const char* CPTR; // pointer to constant chars
No caso 2, após a substituição textual de CHARS, o significado do typedef mudou. Porque isto é assim? Como o C ++ interpreta essa definição?