放置星号最合适的方法是什么?为什么?
1) type* var;
2) type *var;
Run Code Online (Sandbox Code Playgroud)
Sub*_*niC 23
只要你声明一个指针就没关系了.它通常写在第二个例子中(在我通常读/写的代码中),但对于编译器它是相同的.
如果要声明多个指针,则可能会出现问题.例如,这不是声明两个指针,而是声明一个指针和一个类型类型的var.
type* var1, var2;
Run Code Online (Sandbox Code Playgroud)
你需要改为:
type* var1, *var2;
Run Code Online (Sandbox Code Playgroud)
我更喜欢总是使用*.
指针是类型,我认为对类型信息进行分组是最有意义的:
int* foo;
Run Code Online (Sandbox Code Playgroud)
如果在同一行上定义了多个变量,这可能会导致混淆:
int* foo, bar; // foo will be int*, bar will be int
Run Code Online (Sandbox Code Playgroud)
解决这个问题的方法是,永远不要在同一行上声明几个变量.无论如何,Code Complete提倡的东西.
两者都有效。我认为 #1 一般来说更清晰,但在 C 中具有误导性,并且可能导致错误,例如:
type* var1, var2;
// This actually means:
type *var1;
type var2;
Run Code Online (Sandbox Code Playgroud)
所以我想说 #2 在 C 中更惯用,因此推荐,特别是如果您不是唯一处理该代码的程序员(当然,除非你们都同意某种风格)。