搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 解释下这个问题。
标题:
解释下这个问题。
只看楼主
wwxfc
等 级:
论坛游民
帖 子:17
专家分:15
注 册:2010-11-26
结帖率:
87.5%
楼主
已结贴
√
问题点数:5 回复次数:7
解释下这个问题。
a=b=c;
(a=b)=c;
有什么区别?
2011-01-02 20:33
buffer
等 级:
职业侠客
帖 子:73
专家分:326
注 册:2010-12-31
第
2
楼
得分:1
赋值运算的结合性是自右至左,所以a=b=c;拆开就是b=c;a=b;
赋值表达式的值是左值,即变量a,因此是可以赋值的。(a=b)=c;拆开来是a=b;a=c;
2011-01-02 23:36
lucky563591
等 级:
小飞侠
威 望:
4
帖 子:765
专家分:2103
注 册:2009-11-18
第
3
楼
得分:1
从结果来说没区别
2011-01-02 23:47
找工作中
等 级:
论坛游侠
帖 子:41
专家分:114
注 册:2008-5-21
第
4
楼
得分:1
2楼说的对,3楼说法大部分情况下(对于内建类型)也对。
如果a/b/c是类,那就不一定了。
拿到工资先买个山寨手机
2011-01-03 15:20
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
5
楼
得分:1
不是呀,前一种情况 b 的值会变。后一种就不会。
2011-01-04 19:29
点线面
来 自:NO.-1
等 级:
蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
第
6
楼
得分:1
最好不要这样写,编译器可能产生歧义
小代码,大智慧
2011-01-05 00:27
h370544543
等 级:
新手上路
帖 子:4
专家分:1
注 册:2011-1-5
第
7
楼
得分:1
看看赋值运算的规则就行
2011-01-06 03:10
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
8
楼
得分:0
以下是引用
点线面
在2011-1-5 00:27:35的发言:
最好不要这样写,编译器可能产生歧义
一般可以这么写。编译器有优先级和结合性,歧义是不会产生的。
“赋值”的连续调用比较常见,如果表达式本很明了是完全可以这么写的。
2011-01-08 01:12
8
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-330448-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.177523 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved