白豚 发表于 2016-5-29 16:24:01

逗号运算符

最近刚学C,遇到以下问题:
        int a, b, c, d, e;
        e=(d=a+b),(b+c);
        e=((d=a+b),(b+c));
e的结果是什么?

iscpp 发表于 2016-5-29 18:01:52

e的最后结果永远是逗号后面的最后一个

白豚 发表于 2016-5-29 20:35:30

iscpp 发表于 2016-5-29 18:01
e的最后结果永远是逗号后面的最后一个

前一个e的结果是d,后一个e的结果是b+c,对吗?

白豚 发表于 2016-5-29 20:38:54

iscpp 发表于 2016-5-29 18:01
e的最后结果永远是逗号后面的最后一个

d或者是b+c?

DAY 发表于 2016-5-29 23:20:14

只要记得括号只取最后位。。。

iscpp 发表于 2016-5-30 12:11:57

白豚 发表于 2016-5-29 20:38
d或者是b+c?

当然是b+c

iscpp 发表于 2016-5-30 12:12:36

白豚 发表于 2016-5-29 20:35
前一个e的结果是d,后一个e的结果是b+c,对吗?

都是b+c

白豚 发表于 2016-5-30 22:11:05

iscpp 发表于 2016-5-30 12:12
都是b+c

但是编译结果不是b+c啊,

iscpp 发表于 2016-6-7 15:51:19

sorry,看错了,是这样的
变量=(表达式1,表达式2,表达式3);//这样的话,结果是表达式3
如果是
变量=表达式1,表达式2;
事实上它的是这个样子的
(变量=表达式1),表达式2;
所以第一个e等于a+b,第二个是b+c
页: [1]
查看完整版本: 逗号运算符