Память компьютера можно представлять себе, как массив байт. Получается, что каждый байт памяти имеет свой индекс.
Можно представить, что мы обращаемся по адресу p так: RAM[p]
Адрес ячейки -- это индекс в массиве оперативной памяти.
Адрес переменной часто путают с указателем.
Указатель — это переменная для хранения адреса.
int *p;
При этом int * -- это тип данных "указатель на int"
&a | операция взятия адреса ячейки памяти, в которой хранится переменная a (если она занимает несколько последовательных ячеек, берется адрес первой) |
*p | операция разыменования (обращения по адресу, хранящемуся в p) |