免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: txdgtwpv
打印 上一主题 下一主题

[C++] [低水平帖]定义和声明时,星号(*)是靠着类型还是靠着变量 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-08-23 16:39 |只看该作者
靠近变量

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
12 [报告]
发表于 2011-08-24 00:40 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
天蝎座
日期:2014-03-28 10:18:052015年亚洲杯之乌兹别克斯坦
日期:2015-02-10 11:32:25
13 [报告]
发表于 2011-08-24 12:42 |只看该作者
{:3_191:}

论坛徽章:
0
14 [报告]
发表于 2011-08-24 13:11 |只看该作者
*的语义是修饰类型无误,不过语法上是修饰对象。

论坛徽章:
0
15 [报告]
发表于 2011-08-25 09:37 |只看该作者
声明时 char   *   var; 用时 *var

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
16 [报告]
发表于 2011-08-25 10:14 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
17 [报告]
发表于 2011-08-25 10:22 |只看该作者
果然没跟大家错开。。。{:2_168:} 第2种

论坛徽章:
0
18 [报告]
发表于 2011-08-25 17:57 |只看该作者
第二个

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
19 [报告]
发表于 2011-08-26 08:12 |只看该作者
回复 1# txdgtwpv


    现在我喜欢用第一个。这是《C++ Templates》中建议用的风格。这种风格非常明确地说明了:类型 char* 和对象 var 是分离的。《C++ Primer》中也明确说明了,指针、引用、数组是复合类型。不过貌似《C++ Primer》中示例代码也是用第二种(忘记了)?

    第二个,纯粹的C程序员喜欢吧... 《The C Programming Language》里面用的是第二种。

    原来我喜欢第二种风格的说... 现在越发喜欢第一种而讨厌第二种。嗯,类型就是类型,变量就是变量,干嘛乱写?
    比如C++定义引用的用法:
    int a;
    int& b = a;
    我觉得很少有人喜欢这样写引用:
    int &b = a;

    char *a, b; // 拿这种说事的人估计会喜欢谭浩强老师书里的代码风格吧... 很少有人喜欢把指针和单纯的类型放在一起声明。一般来说声明都是分开的单行,如果不是单行,那同一行里面至少应该声明同样的类型吧。

    这个不说... 《C++ Templates》还建议这样的风格呢:
    int const var;
    int const* const p_var;
    因为...把const放在类型后面有益于维护typedef的语义...

    最后... 其实都是扯淡的... 不过现在我还是喜欢第一种(至于第3第4嘛...表示很纠结)... 这是为什么呢...

论坛徽章:
0
20 [报告]
发表于 2011-08-26 08:17 |只看该作者
我觉得是char* str;好。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP