int* a_ptr = nullptr;//Указатель указывает "вникуда"
a_ptr =&f;//Помещаем в указатель адрес ячейки с 12 (f == 12)
cout<<*a_ptr;//Вывести на экран значение в ячейке f
*a_ptr =14;//В переменой a будет уже 14 (f == 14)
a_ptr = a_ptr +14;//Операция допустима, но указывать будет уже не на f. А на ячеку в памяти на 14 * sizeof(int) байт дальше f. Одна из самых частых проблем с указателями
a_ptr =&b;//Поместить адрес переменной b. Вот тут компилятор тебе скажет, что не надо так делать.
prog.cpp: In function 'int main()':
prog.cpp:14:8: error: cannot convert 'double*' to 'int*' in assignment
a_ptr = &b; //Поместить адрес переменной b. Вот тут компилятор тебе скажет, что не надо так делать.
^