> The * operator is used to both declare a pointer variable and to dereference a pointer depending on where it appears.
You seem to be suggesting that this is an inconsistency, it isn't:
int *ptr;
means that (*ptr)
is of type ptr. *ptr = 3;
Means the same and affect 3 to (*ptr)