That bit is called typecasting.
Person * means a pointer, a pointer to a Person object which happens to be a plain struct.
Note that we can’t do this:
Person x = (Person *)malloc (sizeof (Person));
because malloc () returns an address which can only be assigned to a variable of pointer type.
That’s why we need to do something like this:
Person * x = malloc (sizeof (Person));
But malloc is declared as:
void * malloc (size_t size);
Its return type is void*, which means address of anything.
That’s why we need to typecast the value returned by malloc (): from void* to Person *:
Person * x = (Person *)malloc (sizeof (Person));
Hence the (Person *) typecasting.