把星放在哪里用C和C ++指针表示法

时间:2012-12-15 16:59:00

标签: c++ c

  

可能重复:
  Correct way of declaring pointer variables in C/C++

有一段时间以下一直困扰着我,我应该把星星放在指针表示法中。

int *var; // 1

int* var; // 2

显然做同样的事情,两个符号都是正确的,但我发现我看的大多数文献和代码都使用第1种符号。

使用第二种表示法,用空格分隔类型和变量名称,而不是混合类型和变量标记,这不是更“正确”吗?

3 个答案:

答案 0 :(得分:20)

没有。决不。 <g>

但请考虑一下:

int* var1, var2;

此处,*的展示位置具有误导性,因为 不适用于var2int而不是{{1} }}

答案 1 :(得分:13)

Linux kernel coding style约定是:

int *ptr1 , *ptr2;

所以我认为你应该把它作为你的惯例。

  

当声明指针数据或返回指针类型的函数时,       *的首选用法与数据名称或函数名称相邻,而不是       与类型名称相邻。例子:

char *linux_banner;
unsigned long long memparse(char *ptr, char **retptr);
char *match_strdup(substring_t *s);

答案 2 :(得分:10)

我认为这种表示法的部分原因是变量的用法和声明看起来相似。

int *var;
int x;
x = *var;

你也可以认为解除引用var会给你一个int。