Скорее, тут надо образное мышление применить

Если образно, то отдельная переменная - это некий "ящичек", хранилище, где лежит некоторое значение. Причем содержимое "ящичка" можно менять, кладя туда новое значение.
Все "ящички"-переменные стоят рядом друг с другом и пронумерованы (т.е. у каждой переменной есть свой адрес).
А указатель - это "бумажка", на которой записан "номер" какого-либо "ящичка" (адрес переменной). Причем, этот адрес можно с бумажки стирать и писать какой-то другой (т.е. переменной-указателю также можно присваивать разные значения).
А вот то, что с C++ указатель и массив "приравнены в правах", для меня в самом деле тяжело воспринималось. Казалось бы, разве целая "стопка ящичков" и бумажка с номером "первого по порядку" (т.е. нулевого) ящичка - это одно и то же?