It's something that I've seen in C and C++ code. It doesn't make sense. I'm going to have a little rant about it.

When you are declaring a pointer, put the asterisk next to the type, because you are modifying the type.

int* x ✔ Yes very good.

int *x ❌ No very bad.

That's it.

The following is my reasoning in more detail for people who need more convincing because they're too stuck in their ways.

If I write int* x I am writing "x is of type 'pointer to int'".

If I write int *x I am writing "*x is of type int" which makes no sense.

I know the compiler doesn't care. I could write int*x and the compiler would eat it up like a good doggy. I care, because I'm reading the code.

* is not part of the variable name.

If I write x = &intvariable that is different to writing *x = &intvariable. The * is not part of the variable name.

If I have done typedef int* intptr; and then write intptr *x I have created a pointer to a pointer to an int, NOT a pointer to an int called *x.

THE * IS NOT PART OF THE VARIABLE NAME.

So don't make it look like it is.

Thank you for your time.