Задать вопрос
@TarakanoLov

Как правиль оформлять указатели в С++?

Интересно узнать какой Вы считаете стиль правильным.

Первый стиль представляет собой постановку '*' непосредственно перед именем переменной, вот так:
int *foo;
1)Смысл в том что "звездочка" - знак разыменования, соответственно разыменованная переменная foo имеет тип int.
2)Читается слева направо.
3)Этот стиль пришел еще из C, его можно видеть в таких книгах как K&R.

Второй стиль это постановка знака после типа:
int* bar;
1)Смысл в том что "int*"(указатель на int) это и есть тип переменной bar.
2)Многие считаю что удобно читать справа налево, особенно при добавления const(int* const somePoint;(константный указатель на int)).
3)Многие считаю именно такой стиль верным т.к. он более ясно определяет тип переменной.
  • Вопрос задан
  • 659 просмотров
Подписаться Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 6
@Got_Oxidus
Учусь
я один пишу ?
int * name;
(звёздочка отдельно)
Ответ написан
Комментировать
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Есть третий стиль: "всем назло" -- ставить пробелы с обеих сторон звёздочки.
В своих проектах прижимаю звёздочку вправо, потому что конструкциях вида
T *a, b;
тип b -- T, а не T *.
Ответ написан
Комментировать
@docker1
Предпочитаю второй вариант
Ответ написан
Комментировать
PavelK
@PavelK
Аналогично за второй вариант - при беглом чтении глаз цепляется сразу.
Ответ написан
Комментировать
sfi0zy
@sfi0zy
Creative frontend developer
На вкус и цвет фломастеры разные. Склоняюсь ко второму варианту, но (имхо) если в проекте есть стайлгайд и в нем написано использовать какой-то из вариантов, то нужно использовать именно тот вариант, который там написан. Это касается и удобства чтения: если все написано одинаково, то не так важно какой вариант используется - гораздо хуже читается код в котором перемешаны разные стили
Ответ написан
@abcd0x00
Когда пишешь на C:
char *s, *p, *q, ch, *func(void), arr[10];

Когда пишешь на C++:
char* s;
char* p;
char* q;
char ch;
char* func();
char arr[10];


То есть ты просто должен по-разному думать: в C принято объявлять их в одну строку или в несколько строк (язык так и спроектирован, чтобы можно было делать, как удобно); в C++ не принято объявлять их в одну строку (делай, как получится).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы