函数中的C++指针

Ada*_*dam 3 c++ syntax whitespace pointers code-formatting

我知道从技术上讲,以下三种方式都是有效的,但是有任何合乎逻辑的理由以这种方式做到这一点吗?我的意思是,c ++中的很多东西都"技术上有效",但这并不会使它们变得不那么愚蠢.

int* someFunction(int* input)
{
    // code
}  
Run Code Online (Sandbox Code Playgroud)

要么

int *someFunction(int *input)
{
    // code
}
Run Code Online (Sandbox Code Playgroud)

要么

int * someFunction(int * input)
{
    // code
}
Run Code Online (Sandbox Code Playgroud)

我个人认为第三个是烦人的,但有一种"正确"的方式吗?我通常更倾向于使用第一个(因为第二个看起来更像是它被用作解引用运算符 - 它不是)

Vla*_*lad 5

这是个人品味的问题.我更喜欢第一种方法,而老派程序员倾向于使用第二种方法(来自旧的好时间C次).

有区别,请考虑以下事项:

int* p, q; // here p is a pointer to int, but q is just an int!
Run Code Online (Sandbox Code Playgroud)

第一种方式(int* p)的吸引力在于它读作"int指针是一种类型p",而备选int *p读取为"int是一种类型*p"(也是正确的).