The thing is,
is a type, but
is a different
Case in point, you can't do this:
b = a; // error, mismatching types
Therefore, logically, the * is a part of the type (indicating the type is a pointer, rather than an int).
Taking that logic, let's examine the following declaration:
"int" is the type, and "a,b,c" are the variables you want of that type.
you would think "int*" is the type, and "a,b,c" are variables of that type, because that would be the most consistent.
But of course that's not how it works. IE: it's inconsistent.
typedef complicates things even more:
typedef int* intp;
int* a, b; // not the same types
intp c, d; // ? are c and d the same type?
To be honest, I didn't know the answer to the above until I tried it.
As it turns out... typedef behaves logically (intp is the type, therefore both c and d would be pointers). But it just goes to show you how inconsistent and crazy the whole pointer declaration thing is.
I guess you got me there. But honestly I don't see why you'd ever want to do that.