正确的C指针表示法

时间:2010-11-01 16:49:54

标签: c++ c pointers coding-style

哪一种是最好的写作方式:

string* str

或者:

string *str

其中一个有副作用的缺点吗?

由于

4 个答案:

答案 0 :(得分:9)

更喜欢第二个的原因是你一次声明多个变量:

string *str, *foo;
string* str, foo;

这两行不同,第一行声明指针,而第二行声明指向stringstring的指针。

[FredOverflow评论]这个问题可以通过一些模板魔术来解决; - )

template <typename T>
struct multiple
{
    typedef T variables;
};

multiple<string*>::variables str, foo;

答案 1 :(得分:3)

虽然我更喜欢第一种,但有理由更喜欢第二种,请考虑:

string* str, a;
string *str, a;

在最后一种情况下,很明显*仅适用于str。然而,使用这样的声明通常被认为是一种不好的风格。

答案 2 :(得分:3)

我这样做:

string *str;

因为这样做会有所不同

string *str, *str2;

您也可以

typedef string* stringPtr;

这样你就可以做到

stringPtr str, str2;

答案 3 :(得分:2)

在C ++中 - 两者都不是 - 这应该是const string& str

或者那是const string &str? HMM。