What's your preferred pointer declaration style, and why?
I know this is about as bad as it gets for "religious" issues, as Jeff calls them. But I want to know why the people who disagree with me on this do so, and hear their justification for their horrific style. I googled for a while and couldn't find a style guide talking about this.

So here's how I feel pointers (and references) should be declared:

    int* pointer;
    int& ref;
    int*& pointer_ref;

The asterisk or ampersand goes with the *type*, because it modifies the *type* of the variable being declared.

Here are the other two styles (maybe there are more but I really hope not):

    int *ugly_but_common;
    int * uglier_but_fortunately_less_common;

Why? Really, why? I can never think of a case where the second is appropriate, and the first only suitable perhaps with something like:

    int *hag, *beast;

But come now... multiple variable declarations on one line is kind of ugly form in itself already.
What's your preferred pointer declaration style, and why?
===

I know this is about as bad as it gets for "religious" issues, as Jeff calls them. But I want to know why the people who disagree with me on this do so, and hear their justification for their horrific style. I googled for a while and couldn't find a style guide talking about this.

So here's how I feel pointers (and references) should be declared:

    int* pointer;
    int& ref;
    int*& pointer_ref;

The asterisk or ampersand goes with the *type*, because it modifies the *type* of the variable being declared.

Here are the other two styles (maybe there are more but I really hope not):

    int *ugly_but_common;
    int * uglier_but_fortunately_less_common;

Why? Really, why? I can never think of a case where the second is appropriate, and the first only suitable perhaps with something like:

    int *hag, *beast;

But come now... multiple variable declarations on one line is kind of ugly form in itself already.