Семантическая разница между синтаксисом различных указателей в C ++?

В C ++ эта форма int *p семантически отличается от этого int* p? Или это явно вопрос стиля?

Теперь этот вопрос может быть глупым, но я помню, что где-то видел и то и другое стили, используемые одновременно, что заставило меня поверить, что между этими формами может быть разная семантика.

3

Решение

Они одинаковые.

Это иногда сложно, так как

int* a, b;

определяет один указатель и один int. Этот стиль делает это более понятным:

int *a, b;
6

Другие решения

Это имеет тот же смысловой смысл.
Если вы используете const Ключевое слово знать о предостережениях:

int * conts p; — константный указатель на INT против

int const * p; не константный указатель на const int.

4

Как уже говорили другие, они одинаковы.

Дело в том, что int* a, b; объявляет один указатель, а одно целое число — это один из аспектов бородавки, который проявляется и другими способами. Например.:

int* a, f(double), c[42];

объявляет указатель на int называется aфункция, которая принимает double и возвращает int называется fи массив из 42 intназывается c, Это потому что все эти «украшения» (*, (), []) является частью грамматики C ++, называемой описатель, который связан с отдельным именем, а не с заявлением в целом (который называется декларация в грамматике).

2
По вопросам рекламы [email protected]