c ++中不同指针语法之间的语义差异?

时间:2012-11-27 10:02:54

标签: c++ pointers syntax semantics

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

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

3 个答案:

答案 0 :(得分:6)

他们是一样的。

有时这很棘手,因为

int* a, b;

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

int *a, b;

答案 1 :(得分:4)

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

int * conts p; - const指向int与

的指针

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

答案 2 :(得分:2)

正如其他人所说,他们是一样的。

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

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

声明指向int的{​​{1}}指针,该函数接受a并返回double int,数组为42 { {1}}名为f。这是因为所有这些“装饰”(intc*)构成了C ++语法的一部分,称为声明符,它与个人相关联name,而不是语句作为一个整体(在语法中称为声明)。