В C и С++ что делают следующие объявления?
const int * i;
int * const i;
const volatile int ip;
const int *i;
Ошибочны ли какие-либо из указанных выше заявлений?
Если нет, то в чем смысл и различия между ними?
Какое полезное использование вышеуказанных объявлений (я имею в виду, в какой ситуации мы должны использовать их в C/С++/embedded C)?