Как уже упоминалось, 4, 5 и 6 одинаковы. Часто люди используют эти примеры, чтобы аргументировать, что *
принадлежит переменной вместо типа. Хотя это вопрос стиля, есть некоторые споры о том, следует ли вам думать и писать это так:
int* x; // "x is a pointer to int"
или так:
int *x; // "*x is an int"
FWIW Я в первом лагере, но причина, по которой другие приводят аргументы в пользу второй формы, заключается в том, что она (в основном) решает эту конкретную проблему:
int* x,y; // "x is a pointer to int, y is an int"
, что может ввести в заблуждение; вместо этого вы должны написать либо
int *x,y; // it's a little clearer what is going on here
или, если вы действительно хотите два указателя,
int *x, *y; // two pointers
Лично я говорю, держите его по одной переменной на строку, тогда не имеет значения, какой стиль вы предпочитаете.