【问题标题】:What do you mean by left to right associativity in this case?在这种情况下,从左到右的关联性是什么意思?
【发布时间】:2014-03-06 05:18:36
【问题描述】:

我正在阅读 C++ Primer 中关于 C++ 中的 里面写了几行关于

cout

如果有人解释上述行的含义,那就太好了。

【问题讨论】:

  • 这意味着它与赋值运算符的相反方式工作,从右侧开始评估,如x = y = z = 5;

标签: c++ operators ostream associativity


【解决方案1】:

从左到右的关联性意味着表达式被隐式括起来,如下所示:

(((cout << "foo") << "bar") << "baz")

换句话说,最左边的操作在前。

相比之下,在大多数语言中赋值是右结合的:

a = b = c + 5;

c + 5 分配给“a”和“b”,因为赋值运算符从右到左工作。

【讨论】:

    【解决方案2】:

    意思是

    cout << a << b
    

    相同
    (cout << a) << b
    

    不是

    cout << (a << b)
    

    澄清一下:cout &lt;&lt; a部分输出a,然后返回cout,所以(cout &lt;&lt; a)的结果可以作为&lt;&lt; b的左边。左结合性只是意味着如果括号可以使表达式具有其他含义,则假设括号是从左到右设置的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-04
      • 2017-03-28
      • 2016-08-26
      • 2014-10-27
      • 2019-10-15
      • 2020-11-03
      • 1970-01-01
      相关资源
      最近更新 更多