Как уже отмечал "jamesdlin", операторы *
и ->
могут быть перегружены для типов классов.
И тогда два выражения (*ptr).method()
и ptr->method()
могут иметь разный эффект.
Однако для встроенных операторов оба выражения эквивалентны.
Оператор ->
более удобен, когда вы следуете за цепочкой указателей, потому что .
имеет более высокий приоритет, чем *
, поэтому требуется множество незапятнанных скобок.
Рассмотрим:
pBook->author->snailMail->zip
против
(*(*(*pBook).author).snailMail).zip