为了账号安全,请及时绑定邮箱和手机立即绑定

逗号运算符如何工作

逗号运算符如何工作

C++ C
largeQ 2019-05-27 15:40:10
逗号运算符如何工作逗号运算符如何在C ++中工作?例如,如果我这样做:a = b, c;最终是否等于b或c?(是的,我知道这很容易测试 - 只是在这里记录,以便有人快速找到答案。)更新: 此问题在使用逗号运算符时暴露了细微差别。只是记录下来:a = b, c;    // a is set to the value of b!a = (b, c);  // a is set to the value of c!这个问题实际上是受到代码中的拼写错误的启发。打算做什么a = b;c = d;转换成a = b,    //  <-  Note comma typo! c = d;
查看完整描述

4 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

它等于b

逗号运算符的优先级低于赋值。


查看完整回答
反对 回复 2019-05-27
?
HUWWW

TA贡献1874条经验 获得超12个赞

请注意,逗号运算符可能在C ++中过载。因此,实际行为可能与预期的行为非常不同。

例如,Boost.Spirit非常巧妙地使用逗号运算符来实现符号表的列表初始值设定项。因此,它使以下语法成为可能且有意义:

keywords = "and", "or", "not", "xor";

请注意,由于运算符优先级,代码(故意!)相同

(((keywords = "and"), "or"), "not"), "xor";

也就是说,第一个被调用的运算符是keywords.operator =("and")返回一个代理对象,在该代理对象上operator,调用其余的s:

keywords.operator =("and").operator ,("or").operator ,("not").operator ,("xor");


查看完整回答
反对 回复 2019-05-27
  • 4 回答
  • 0 关注
  • 597 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信