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