Когда стоит использовать указатели?

В C , как и во многих других языках программирования есть такая штука как "указатель", "поинтер". Зачастую говорят, что использовать эти указатели удобнее и логичнее, а иногда - напротив, рекоммендуют не прибегать к этому.

Подскажите пожалуйста, в каких случаях нужно обращаться к объекту напрямую, через указатель, а в каких - указывая имя объекта?

Сказать, что есть случаи, когда нужно пользоваться ТОЛЬКО указателем, наверное, нет. Другой вопрос, когда логичнее использовать укзатель, или когда теоретически можно его использовать.

Указатели можно применять в таких случаях:

1. Когда нужно обратиться к объекту, при том что нам всё равно (мы не знаем) как под него распределена память.

2. В случае, если нам необходимо обратиться непосредственно к объекту, а не к его копии.

3. В случае если нам нужно оптимизировать программу, использование указателей может сыграть нам на руку: постоянное копирование объектов не очень хорошо сказывается на скорости компиляции и выполнения программы.

4. Взаимодействие с библиотекой C или C-подобной. Здесь вам придется использовать сырые указатели, освобождение памяти из-под которых вы производите в самый последний момент.