Для чего нужны:
Чтобы получить адрес ячейки в памяти, где находится начало переменной или функции.
Как используются:
- Для оптимизации алгоритмов (например, превратить массив байт в массив интов отбрасывая проверки и сборщик мусора)
+ битовые операции с адресом (например, чтобы мгновенно найти адрес середины массива)
- Для работы с библиотеками написанными на других языках (например, сишная функция принимает указатель)
- Для использования SIMD