3

在 C++ 中,这种形式在int *p语义上与这种形式不同int* p吗?或者这显然是风格问题?

现在这个问题可能很愚蠢,但我记得我曾在某处看到两种样式同时使用,这让我相信这些形式之间可能存在不同的语义。

4

3 回答 3

6

他们是一样的。

有时这很棘手,因为

int* a, b;

定义一个指针和一个整数。这种风格使它更清晰:

int *a, b;
于 2012-11-27T10:04:13.770 回答
4

它具有相同的语义含义。如果您使用const关键字,请注意以下警告:

int * conts p;- 指向 int 的 const 指针与

int const * p;- 指向 const int 的非 const 指针。

于 2012-11-27T10:05:13.007 回答
2

正如其他人所说,它们是相同的。

声明一个指针和一个整数的事实int* a, b;是疣的一个方面,它也以其他方式表现出来。例如:

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

声明了一个指向int被调用的指针,一个接受并返回被调用a的函数,以及一个由 42 个被调用的数组。这是因为所有这些“装饰”( , , ) 构成了称为声明符的 C++ 语法的一部分,它与单个名称相关联,而不是与整个语句相关联(在语法中称为声明)。doubleintfintc*()[]

于 2012-11-27T10:12:21.420 回答