指针的两种不同类型的星号位置?

时间:2013-11-11 01:16:27

标签: c++ pointers

说你有这个..

 int fry = 50;

现在做一个指针并引用该值,星号可以用两种不同的方式放置:

 int* d1 = &fry;

和...

 int *d1 = &fry;

我想知道差异是什么,最好使用哪种情况?谢谢!

2 个答案:

答案 0 :(得分:4)

没有区别。您甚至可以int*d1int * d1

在我看来,你应该更喜欢int *d1:这个选择在避免混淆方面具有特殊用途:

int* d1, d2;
int *d1, d2;

这些语句都声明一个整数和一个指向整数的指针。第一个版本看起来很有误导性。

答案 1 :(得分:2)

您给出的两个例子没有区别。至于你应该使用哪个,请遵循你正在使用的代码的样式。

但请注意,*绑定到变量,而不是它们的类型。因此,

int *this_is_a_pointer, this_is_just_an_int;

int* this_is_a_pointer, this_is_just_an_int;

是一样的。如果您需要这样的东西,我实际上会编写以下任何一种以避免混淆

int* this_is_a_pointer;
int this_is_just_an_int;

int *this_is_a_pointer;
int this_is_just_an_int;

取决于正在使用的样式。