【发布时间】:2014-03-06 05:18:36
【问题描述】:
我正在阅读 C++ Primer 中关于 C++ 中的 里面写了几行关于
cout
如果有人解释上述行的含义,那就太好了。
【问题讨论】:
-
这意味着它与赋值运算符的相反方式工作,从右侧开始评估,如
x = y = z = 5;。
标签: c++ operators ostream associativity
我正在阅读 C++ Primer 中关于 C++ 中的 里面写了几行关于
cout
如果有人解释上述行的含义,那就太好了。
【问题讨论】:
x = y = z = 5;。
标签: c++ operators ostream associativity
从左到右的关联性意味着表达式被隐式括起来,如下所示:
(((cout << "foo") << "bar") << "baz")
换句话说,最左边的操作在前。
相比之下,在大多数语言中赋值是右结合的:
a = b = c + 5;
将c + 5 分配给“a”和“b”,因为赋值运算符从右到左工作。
【讨论】:
意思是
cout << a << b
与
相同(cout << a) << b
不是
cout << (a << b)
澄清一下:cout << a部分输出a,然后返回cout,所以(cout << a)的结果可以作为<< b的左边。左结合性只是意味着如果括号可以使表达式具有其他含义,则假设括号是从左到右设置的。
【讨论】: