Eu tenho preferido int* i
por anos. No entanto, há um forte argumento int *i
porque, ao usar o estilo anterior, você ainda deve se lembrar da regra de declaração múltipla:
int* a, *b; // not int* a, b;
Como você deve se lembrar dessa regra, não ganha nada de maneira simples - mas eu também não diria que é mais complexo. Evitar várias declarações em uma linha é apenas outra maneira de dizer que você se lembra dessa regra. A diferença entre os dois estilos é discutível.
Mesmo quando eu o uso, no entanto, é um pouco tolo fingir que a sintaxe da declaração C funciona de outra maneira, colocando o asterisco ao lado do tipo e não da variável à qual está sintaticamente ligado.
Eu não compro em que se enfatiza o tipo de ponteiro (para i
) enquanto o outro enfatiza o tipo int (para *i
), mas que pode ser que depois de 15 anos de C e C ++ uso, ele só é quando eu olhar para ele, sem ter que pensar nisso - algo que a maioria dos iniciantes que faz essa pergunta ainda não pode fazer.
Além disso, mesmo com a minha preferência, não acho estranho ler / escrever código no outro estilo. Consistência, blá blá blá.
Não precisa nem mencionar int * i
.