如何在C语法中声明指针?

时间:2012-02-14 16:14:05

标签: c

  

可能重复:
  C++ Pointer in Function

在声明指针时,这些语句在C中是否相同?

 int *ptr;
 int * ptr;
 int* ptr;

4 个答案:

答案 0 :(得分:1)

如链接问题中所述,它们都是相同的(只需确保使用一个一致 - 尤其是在使用现有代码库时)。

唯一的两个区别是:

  • 第一种格式是K& R使用的格式。在谈论样式C代码时,很多人都默认使用K& R.

  • int* p, x;具有误导性,因为x是int而不是int *,所以在使用第3种语法时要注意这个缺陷。

答案 1 :(得分:1)

这三个声明是等效的。

int *ptr;  // Kernighan & Ritchie style
int* ptr;  // Stroustrup style

答案 2 :(得分:0)

是。这主要是一个偏好问题,但根据我的经验,大多数人更喜欢第一个或第三个。

就我个人而言,我更喜欢第一种,因为像:

int *ptr1, *ptr1;

,而

int* ptr1, ptr2; /* ptr2 is NOT a pointer, needs another * before it to be one */

编辑:

要明确的是,一个人并不比另一个人更正确,你应该选择哪一个对你最有意义。最重要的是,在整个代码中使用一个可能是最重要的。

答案 3 :(得分:0)

你尝试过吗?对,他们是。我个人总是喜欢第一种方式。但我不会在这里开始新的“格式化”战争; - (