That is actually C syntax. It's used to access a field (variable) of a pointer to a struct.
When you have a pointer, you have to use the *
syntax to dereference it:
int var = 1; // regular int variable
int *ptr = &var; // pointer to that variable
int sum = (*ptr) + 3; // if you want to use it regularly, you have to dereference it first.
Now, if this pointer happens to be a struct pointer, it can become ugly:
// Define and typedef a struct.
typedef struct {
int num1;
int num2;
} MyStruct;
MyStruct myStruct = (MyStruct){1, 2}; // Regular struct.
MyStruct *pointer = &myStruct; // Pointer to that struct.
int sum = (*pointer).num1 + (*pointer).num2; // The ugly part.
int niceSum = pointer->num1 + pointer->num2; // Same thing with cleaner code.