Оператор стрелки ('->') используется в том же месте, в котором вы бы использовали оператор точки ('.'), Но с указателем на структуру вместо объекта этой структуры.
typedef struct _Person {
char name[200];
unsigned int age;
} Person;
Если вы создали объект этой структуры, вы использовали бы оператор точки для доступа к его членам:
int main()
{
Person p1;
strcpy( p1.name, "Baltasar" );
p1.age = 36;
}
Однако, если вы указатель на структуру, а не на саму структуру, вы можете использовать только оператор стрелки или чуть более сложный оператор точки:
int main()
{
Person p1;
Person *ptrPerson = &p1; // ptrPerson points to p1
strcpy( ptrPerson->name, "Baltasar" );
ptrPerson->age = 36;
}
Как я уже говорил, вы все равно можете использовать оператор точки:
int main()
{
Person p1;
Person *ptrPerson = &p1; // ptrPerson points to p1
strcpy( (*ptrPerson).name, "Baltasar" );
(*ptrPerson).age = 36;
}
OfКонечно, все это обсуждение затрагивает гораздо больше тем, таких как указатели, куча и т. д. Надеюсь, это поможет.