变量赋值和逗号运算符
Posted
技术标签:
【中文标题】变量赋值和逗号运算符【英文标题】:Variable assignment and the comma operator [duplicate] 【发布时间】:2016-12-28 07:24:29 【问题描述】:谁能帮我解释一下:
int a, b, c, d;
a = 2;
b = 4;
c = a, b;
d = (a, b);
为什么c == 2
和d == 4
???
【问题讨论】:
不要在图片中发布代码和结果,这是一个可以在移动设备上查看的 PITA,也可以在编译器中尝试您的代码。 -1,直到你修复它。 好的,很抱歉。 拒绝投票已撤回。 【参考方案1】:这两个语句都被评估为
c = a;
d = b;
由于 逗号 运算符(在所有运算符中具有最低优先级)在 C 和 C++ 中的工作方式。
对于第一个,首先评估c = a
(因为=
的优先级高于逗号运算符)然后评估b
(这是一个无操作)。 整个表达式有一个值b
,但它没有分配给任何东西。
对于d = (a, b);
,(a, b)
由于括号而被首先计算。这有一个值b
,并分配给d
。
【讨论】:
@TrầnHồngPhát - 你应该接受这个答案,因为它对你有帮助并且它是正确的。以上是关于变量赋值和逗号运算符的主要内容,如果未能解决你的问题,请参考以下文章