在 C++ 中,这种形式在int *p
语义上与这种形式不同int* p
吗?或者这显然是风格问题?
现在这个问题可能很愚蠢,但我记得我曾在某处看到两种样式同时使用,这让我相信这些形式之间可能存在不同的语义。
他们是一样的。
有时这很棘手,因为
int* a, b;
定义一个指针和一个整数。这种风格使它更清晰:
int *a, b;
它具有相同的语义含义。如果您使用const
关键字,请注意以下警告:
int * conts p;
- 指向 int 的 const 指针与
int const * p;
- 指向 const int 的非 const 指针。
正如其他人所说,它们是相同的。
声明一个指针和一个整数的事实int* a, b;
是疣的一个方面,它也以其他方式表现出来。例如:
int* a, f(double), c[42];
声明了一个指向int
被调用的指针,一个接受并返回被调用a
的函数,以及一个由 42 个被调用的数组。这是因为所有这些“装饰”( , , ) 构成了称为声明符的 C++ 语法的一部分,它与单个名称相关联,而不是与整个语句相关联(在语法中称为声明)。double
int
f
int
c
*
()
[]