В C ++ эта форма int *p
семантически отличается от этого int* p
? Или это явно вопрос стиля?
Теперь этот вопрос может быть глупым, но я помню, что где-то видел и то и другое стили, используемые одновременно, что заставило меня поверить, что между этими формами может быть разная семантика.
Они одинаковые.
Это иногда сложно, так как
int* a, b;
определяет один указатель и один int. Этот стиль делает это более понятным:
int *a, b;
Это имеет тот же смысловой смысл.
Если вы используете const
Ключевое слово знать о предостережениях:
int * conts p;
— константный указатель на INT против
int const * p;
не константный указатель на const int.
Как уже говорили другие, они одинаковы.
Дело в том, что int* a, b;
объявляет один указатель, а одно целое число — это один из аспектов бородавки, который проявляется и другими способами. Например.:
int* a, f(double), c[42];
объявляет указатель на int
называется a
функция, которая принимает double
и возвращает int
называется f
и массив из 42 int
называется c
, Это потому что все эти «украшения» (*
, ()
, []
) является частью грамматики C ++, называемой описатель, который связан с отдельным именем, а не с заявлением в целом (который называется декларация в грамматике).