在博客和论坛上,我注意到人们使用不同的方式在c++中声明指针:
int* a = nullptr;和
int *a = nullptr;这两种方法有区别吗?如果是,什么是?
发布于 2019-03-02 11:35:29
在C++中的大多数上下文中,空白被忽略,这就是其中之一。您可以编写它,比如int*a=nullptr;、int *a=nullptr;、int* a=nullptr;、int * a=nullptr;或其他适合您的东西,这对编译器来说都是一样的。在人们的偏好中,大部分原因归结为风格指南,通常或其他形式的论证,它们在自己的代码库中最易读。
正如其他人所指出的那样,这可能更多地涉及对如何根据声明确定类型的误解,在许多情况下,这种误解确实会使人感到困惑。我建议你研究如何阅读这些(像螺旋规则这样的东西是一个很好的地方,即使它不是100%的准确性),因为这将有助于缓解大部分的困惑。
发布于 2019-03-02 11:35:34
没什么区别。*只适用于a。
示例:
int *a= nullptr, b=12; // a is a pointer, b is a plain int
int* a= nullptr, b=12; // still a is a pointer and b an int,
// despite misleading impression conveyedhttps://stackoverflow.com/questions/54958035
复制相似问题