Ты прав,
(*structurePointer).field
точно так же, как
structurePointer->field
Что у вас есть, однако:
*structurePointer.field
Который действительно пытается использовать оператор .
для переменной указателя, а затем разыменовывать результат этого - он даже не скомпилируется. Вам нужны скобки, как у меня в первом примере выше, если вы хотите, чтобы выражения были эквивалентны. В этом простом случае стрелка сохраняет как минимум пару нажатий клавиш.
Использование ->
может иметь больше смысла, если вспомнить случай, когда поле структуры имеет тип указателя, возможно, на другую структуру:
structurePointer->field->field2
против
(*(*structurePointer).field).field2