可能的重复:
我在很多代码中看到了这个的混合版本。 (顺便说一句,这适用于 C 和 C++。)人们似乎以两种方式之一声明指针,我不知道哪一种是正确的,甚至不知道它是否重要。
第一种将星号放在类型名称旁边的方法,如下所示:
someType* somePtr;
第二种方法是将星号放在变量名称旁边,如下所示:
someType *somePtr;
这已经让我发疯了一段时间了。有没有声明指针的标准方法?指针的声明方式是否重要?我以前使用过这两种声明,而且我知道编译器并不关心它是哪种方式。然而,我看到指针以两种不同的方式声明的事实让我相信这背后是有原因的。我很好奇这两种方法是否在我所缺少的某种方式上更具可读性或逻辑性。
原文由 jakogut 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是一个偏好问题,有点像圣战,就像括号样式一样。
“C++”风格
是强调指针变量的类型。它本质上是说“--- 的类型是指向---
someType
somePtr
的指针”。“C”型
正在强调指向数据的类型。它本质上是说“
somePtr
指向的数据类型是someType
”。它们的含义相同,但这取决于给定程序员在创建指针时的心理模型是否“集中”,可以说是指向数据或指针变量。
把它放在中间(如
someType * somePtr
)试图避免承诺任何一个。