注册 登录
编程论坛 新人交流区

[求助]逗号运算的问题

ValueSun 发布于 2007-11-04 12:09, 2672 次点击
a=(b=1,2,3);a=?b=?为什么?想不通啊!!!
我的理解:
()的优先大,所以先是b=1,2,3 结果为b=3,然后a=3
可是~~~
32 回复
#2
kuangxing2007-11-04 13:19
b=1,2,3有这么 定义的么!
#3
hago2007-11-04 13:35
逗号运算符","也叫顺序求值运算符,运算优先级15是最低的,结合方向为自左向右(即:先执行左边的表达式,再执行右边的表达式).逗号运算符的左边总是不返回的,也就是说逗号右边的值才识整个表达式的值.
a=(b=1,2,3);的结果应该是b=1 ,a=3吧
b=1,2;的结果b=1
b=(1,2);的结果才是b=2
#4
星洋2007-11-04 13:51
迷茫
方向在那里呢???
#5
枫之恋2007-11-04 16:33
感觉好像不对哦!!1
#6
lovewenyong72007-11-04 16:46
a=(b=1,2,3)中,b=1构成了赋值语句,且在整个逗号表达式的值是最后的表达式的值,所以结果应该是:b=1,a=3 。
不知道说错了没?
#7
bmw750love2007-11-04 17:21

好像是野

#8
小小牙骋2007-11-04 17:50
#9
yjbgwxf20082007-11-04 18:39
顶三楼的
#10
jxj7772007-11-04 18:46

a=(b=1,2,3);
等价于
a=b=1;
a=2;
a=3;

#11
xiubing03772007-11-05 11:07
a=3
#12
信飞鸟2007-11-05 11:35
第一次见到.学习了
#13
lpc232007-11-05 12:20

a=(b=1,2,3);
等价于
a=b=1;
a=2;
a=3;

#14
gouki2007-11-05 14:26
没有采用过这种写法

实际中也不大遇到吧?
#15
LOvE老鼠YoU2007-11-05 15:08
你们在说什么我是新手看不懂

#16
LOvE老鼠YoU2007-11-05 15:09
你们在说什么看不懂, 新手
#17
xhxlmm2007-11-05 16:08
a=b=1:a=b=2:a=b=3
#18
lovewenyong72007-11-05 16:25
已经很明白了啊,解释的很清楚啊,逗号表达式就这么点内容,看书都能懂的!
#19
gurrby2007-11-05 16:26
buhui
#20
wanderful2007-11-05 17:36
顶3楼的
#21
zhouqingwuji2007-11-05 21:42

那样写算什么啊?@@

#22
剑气萧馨2007-11-05 22:00
a=3;
b=1;
程序运行的
#23
丘比特2007-11-05 22:18
我运行了,a=3,b=1;
#24
一水先生2007-11-05 22:56
看书!
#25
cuihaipeng2007-11-05 23:16

#26
cuihaipeng2007-11-05 23:25
#27
huruigege2007-11-06 08:38
#28
huruigege2007-11-06 08:39
今天还可以发贴5篇。(含本篇)
#29
lihuasy2007-11-06 08:53
以下是引用hago在2007-11-4 13:35:22的发言:
逗号运算符","也叫顺序求值运算符,运算优先级15是最低的,结合方向为自左向右(即:先执行左边的表达式,再执行右边的表达式).逗号运算符的左边总是不返回的,也就是说逗号右边的值才识整个表达式的值.
a=(b=1,2,3);的结果应该是b=1 ,a=3吧
b=1,2;的结果b=1
b=(1,2);的结果才是b=2

这位说得好!!!

#30
ValueSun2007-11-06 20:04

在此多谢大家回答,找到答案了~~~

#31
wdyllff2007-11-06 20:14
以下是引用lovewenyong7在2007-11-4 16:46:03的发言:
a=(b=1,2,3)中,b=1构成了赋值语句,且在整个逗号表达式的值是最后的表达式的值,所以结果应该是:b=1,a=3 。
不知道说错了没?

赞同!

#32
lzw20042007-11-06 20:29
迷茫中
1