Мне трудно найти интуитивный шаблон для того, как const используется в объявлениях на языках C и С++. Вот несколько примеров:
const int a; //Const integer
int const a; //Const integer
const int * a; //Pointer to constant integer
int * const a; //Const pointer to an integer
int const * a const; //Const pointer to a const integer
В строках 1 и 2 кажется, что const
может появиться до или после int
, что и изменяет.
- Итак, как в строке 4 компилятор решает, что
const
изменяет*
(указатель), а неint
? - Какое правило следует использовать компилятору для определения того, к чему относится
const
? - Соответствует ли это правилу для
*
?