首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确的C指针符号

正确的C指针符号
EN

Stack Overflow用户
提问于 2010-11-02 00:49:54
回答 4查看 1.6K关注 0票数 0

哪一种是最好的写法:

代码语言:javascript
复制
string* str

或者:

代码语言:javascript
复制
string *str

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

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-02 00:53:08

选择第二种方法的一个原因是当您一次声明多个变量时:

代码语言:javascript
复制
string *str, *foo;
string* str, foo;

这两行不同,第一行声明了指针,而第二行声明了一个指向string的指针和一个指向string的指针。

来自FredOverflow的评论这个问题可以通过一些模板魔法来解决;-)

代码语言:javascript
复制
template <typename T>
struct multiple
{
    typedef T variables;
};

multiple<string*>::variables str, foo;
票数 9
EN

Stack Overflow用户

发布于 2010-11-02 00:53:10

尽管我更喜欢第一个,但还是有理由选择第二个的,考虑一下:

代码语言:javascript
复制
string* str, a;
string *str, a;

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

票数 3
EN

Stack Overflow用户

发布于 2010-11-02 00:53:31

我是这样做的:

代码语言:javascript
复制
string *str;

因为当你这样做的时候会有所不同

代码语言:javascript
复制
string *str, *str2;

你也可以这样做

代码语言:javascript
复制
typedef string* stringPtr;

这样你就可以做

代码语言:javascript
复制
stringPtr str, str2;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4071068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档