【发布时间】:2013-09-26 13:11:22
【问题描述】:
好的,我知道了
int *ptr;
是一个指向/属于一个int的指针
.
如果我这样做
int i = *ptr;
我正在取消引用指向值的指针
.
但我的问题是,为什么它如此普遍使用
int *ptr;
而不是
int* ptr;
相反?它们本质上是一样的,但是第一个例子看起来像是一个解引用而不是一个指针声明,而第二个例子是一个非常明确的指针定义。
【问题讨论】:
-
int*令人困惑。想象一下int* a, b;a将是一个指针而b不会是不是很奇怪?但是int *a, b虽然更明显,但确实看起来像是取消引用。这就是我使用int * a的原因,但是这个问题很自以为是。 -
使用
int *ptr;真的那么普遍吗?我几乎从未见过这种形式,这很好地表明这对 SO 来说不是一个好问题。当您在一行中声明许多变量时,它很有用,但这通常被认为是糟糕的风格。编辑:我所说的适用于 C++。 -
这几乎是 C++ vs C 的事情,C++ 程序员更倾向于
int* ptr,因为这强调了ptr的类型。 -
这是一个基于意见的问题的典型例子。就像括号前的空格,同一行或下一行的大括号,下一行的大括号缩进等...
-
@nijansen:回复:“int* 令人困惑。”:你说。