В C++ адреса хранятся в указателях. Указатель - это переменная, которая содержит адрес ячейки памяти, где расположены данные. Тип указателя определяет тип данных, на которые он указывает.
Например, чтобы хранить адрес целочисленной переменной, можно использовать указатель типа int *. Для хранения адреса числа с плавающей запятой - указатель типа float *. Если необходимо хранить адрес символа, можно использовать указатель типа char *. В общем случае, тип указателя соответствует типу данных, на которые он указывает.
Для объявления указателя, используется оператор *, который указывает на то, что это переменная-указатель. Например:
int *ptr; // указатель на целое число
float *fptr; // указатель на число с плавающей запятой
char *cptr; // указатель на символ
Для присваивания адреса переменной указателю, используется оператор &. Например:
int num = 42;
int *ptr = # // указатель ptr теперь содержит адрес переменной num
Также указатели могут использоваться для динамического выделения памяти с помощью оператора new. Например:
int *arr = new int[5]; // выделение памяти под массив из 5 целых чисел
После окончания работы с динамически выделенной памятью, ее необходимо освободить с помощью оператора delete. Например:
delete[] arr; // освобождение памяти
Указатели могут использоваться для передачи адреса переменной в функции и для работы с динамической памятью. Они являются мощным инструментом в C++, но требуют внимательной работы, чтобы избежать ошибок, таких как неправильное разыменование указателя или утечки памяти.