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?

questionAnswers(2)

yourAnswerToTheQuestion