免费注册 查看新帖 |

Chinaunix

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

531,继续抽某昏昏 [复制链接]

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
81 [报告]
发表于 2012-09-21 23:59 |只看该作者
++/--只能用于lvalue,这儿惹着variable什么事了?还要搞一个anonymous variable?这个东东明明是C++里的,和C有什么关系呢?

论坛徽章:
0
82 [报告]
发表于 2012-09-22 11:08 |只看该作者
本帖最后由 幻の上帝 于 2012-09-22 11:09 编辑

回复 2# wwwsq

这是你临时找的吧……
1.这篇讲的是C++,不是C。
2.这篇可以算是胡言乱语,虽然本事在谭X之下,不过也相去不远了。首要问题在于这里生造的概念直接和ISO C++ Clause 3冲突。C++所说的variable是指经过声明引入的对象(对象声明或引用声明),一定是具名的。C没有引用类型,没必要强调与之相当的“变量”概念(事实上ISO C里面也没有)。C所说的“变量”,无非是基于习惯的用法,类似于数学中的含义;或者,要想照搬C++,也就是具名的对象罢了。
你说anonymous variables是“路左边的餐馆”,不算Prolog、Erlang等,倒是不错。不过对于C来说,variable和“路左边的餐馆”也相差无几了。即便K&R里这个词比较常用,我不记得有直接表示这个就是语言自身的要素。
实际上用object就够清楚了,多弄点概念真没必要

另外就是你引用的这篇中剩下的问题:
1.C++中右值可以引入临时对象(temporary objects)。但是有一个重要的前提:类类型的右值才产生临时对象,而对于int这样的类型没这回事——这却恰恰就是这篇文章所给的一些例子中的情况。作者看来知道什么时候有临时对象,因此单独列出了anonymous class objects,却不恰当地类推到非类类型右值,称为所谓的anonymous variables。
2.所谓“expression scope”是无稽之谈——scope(作用域)对于声明引入的名称有意义,而扩展至表达式的是临时对象的生存期(并且在这个上下文中有若干例外)。如果想要说“范围”,不应该用scope,或者至少给scope单独加引号强调不是本义。
3.作者想要表达的anonymous class objects大约相当于临时对象,但根本没说全(偏偏不是只举了一种例子,所以在这里有误导性)。临时对象不仅仅存在于返回右值和某些初始化时。像异常对象也是临时对象,而这个上下文中的临时对象的生存期并没被这篇说清楚。
其它像Add使用非const引用等不良习惯就不多提了。

论坛徽章:
0
83 [报告]
发表于 2012-09-22 11:13 |只看该作者
回复 81# windoze

++/--对lvalue的要求也适用于C++内建操作符。
话说Java的variable倒是和C的lvalue相当。

论坛徽章:
0
84 [报告]
发表于 2012-09-23 16:55 |只看该作者
幻の上帝 发表于 2012-09-22 11:08
回复 2# wwwsq

这是你临时找的吧……



对,临时找的。首先要明白何谓variable,自然会理解何谓anonymous variable。

anonymous variable其实蛮像lvalue的概念,但是描述的角度不太一样。

论坛徽章:
0
85 [报告]
发表于 2012-09-23 21:22 |只看该作者
本帖最后由 jeung 于 2012-09-23 21:25 编辑
wwwsq 发表于 2012-05-31 03:36
某昏昏看起来是没明白什么叫“指针变量”,什么叫“指针指向的变量”
你觉得*p是变量而非表达式?

edit:
6.5.3 Unary operators
unary-operator: one of
& * + - ~ !

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
86 [报告]
发表于 2012-09-23 21:58 |只看该作者
回复 84# wwwsq
anonymous variable其实蛮像lvalue的概念,但是描述的角度不太一样。

这个“不太一样”的确需要解释清楚,要不然大家都不知道你的“角度”

论坛徽章:
0
87 [报告]
发表于 2012-09-23 22:44 |只看该作者
回复 24# pmerofc

在C++里这是错的。变量不是表达式,变量才是表达式。
如果要承认变量是表达式,那么对象是不是表达式?
而像维基里一样按习惯说变量是表达式也并非全然不通。JLS就提过Java里的variable相当于C的lvalue,也就是一种表达式。
只是C没明确“变量”的概念,就说不清楚了。这也是我回避variable的原因。

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

论坛徽章:
0
89 [报告]
发表于 2012-09-23 23:55 |只看该作者
pmerofc 发表于 2012-09-23 23:07
你说到要点了
在C++中variable这个术语是有定义的



说你基础概念不清吧,还真没说错。

连何谓‘变量’都不知道。。。啧啧。。。

论坛徽章:
0
90 [报告]
发表于 2012-09-23 23:57 |只看该作者
幻の上帝 发表于 2012-09-23 22:44
回复 24# pmerofc

在C++里这是错的。变量不是表达式,变量名才是表达式。



是的,这里很明显。变量不是表达式。

这是很明显的问题。一个实际的‘物’,怎么可能一个虚的‘名’?

某昏昏根本就没意识到‘物’和‘名’的区别,所以才会说“变量本身就是表达式”。所以我说某昏昏基础概念不清。

这也是我说谭浩强很多地方中正平和的原因:有些地方你看起来平平无奇,但是他就是对的。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP