我正在阅读 C++ Primer 中关于 C++ 中的 << 运算符的信息。
其中,有几行关于 << 运算符
cout << "Some string" 计算为左手 ostream 运算符,即表达式的结果是 cout 对象本身。(我们说运算符从左到右关联)。
如果有人解释上述行的含义,那就太好了。
我正在阅读 C++ Primer 中关于 C++ 中的 << 运算符的信息。
其中,有几行关于 << 运算符
cout << "Some string" 计算为左手 ostream 运算符,即表达式的结果是 cout 对象本身。(我们说运算符从左到右关联)。
如果有人解释上述行的含义,那就太好了。
代表着
cout << a << b
是相同的
(cout << a) << b
不是
cout << (a << b)
澄清一下:该cout << a
部分输出 a,然后返回 cout,因此 的结果(cout << a)
可以用作 的左侧<< b
。左结合性只是意味着如果括号可以使表达式具有其他含义,则假设括号是从左到右设置的。
从左到右的关联性意味着表达式被隐式括起来,如下所示:
(((cout << "foo") << "bar") << "baz")
换句话说,最左边的操作首先出现。
相比之下,在大多数语言中赋值是右结合的:
a = b = c + 5;
赋值c + 5
给“a”和“b”,因为赋值运算符从右到左工作。