The reason the same symbol is used is because of the way C types are read:
int x; // (x) is an int int *x; // (*x) is an int int **x; // (**x) is an int int x(double); // (x(1.)) is an int
However, I am still believing a different operator would make more sense.
The reason the same symbol is used is because of the way C types are read: