Обычно, если вы делаете следующее:
int * i = &someint;
Это просто указатель на переменную.
Но, когда вы делаете
char * str = "somestring";
это автоматически превращает его в массив. Делает ли это указатель, или это просто синтаксический сахар для синтаксиса инициализации?