【发布时间】:2012-12-15 16:59:00
【问题描述】:
一段时间以来,以下问题一直困扰着我,我应该将星号放在我的指针符号中的哪个位置。
int *var; // 1
和
int* var; // 2
显然做同样的事情,两种表示法都是正确的,但我发现我看到的大多数文献和代码都使用第一种表示法。
使用第二种表示法,用空格分隔类型和变量名,而不是混合类型和变量标记,不是更“正确”吗?
【问题讨论】:
-
如果你从字体的角度来看事物。但 C 的声明语法并非如此。
int* p, q;声明一个指针和一个普通int。 -
它们是一样的,这是个人选择,而这个问题既无法回答,又重复了数百次。
-
@DanielFischer:我想给你分数,所以如果我想声明两个指针,我必须输入
int *p, *q? -
是的,这个想法(我不喜欢它)是“声明模仿使用”。所以你需要为你声明的每个指针加上一个星号,为每个数组加上括号(除非你使用 typedefs 来消除这种需要)。
-
你正在进入一个宗教狂热的主题。不过我同意你的推理。反例通常类似于“int* p, q”,我会说“那就不要那样做”。