В чем разница объявления (указатели и переменные)?
1) Создаётся одна переменная типа int в автоматической памяти с именем i. Значение i не определено.
2) Синтаксическая ошибка, возможно вы имели в виду int* i;? В таком случае создаётся переменная типа int* в автоматической памяти с именем i. Значение i не определено.
3) Синтаксическая ошибка, возможно вы имели в виду int* i = new int;? таком случае создаётся переменная типа int* в автоматической памяти с именем i. Затем создаётся переменная типа int в динамической памяти, и i присваивается адрес этой свежесозданной переменной.
4) Синтаксическая ошибка. Понятия не имею что подразумевалось.
раз два, читай друг.