You need to enable JavaScript to run this app. C++中>>运算符的返回值是否为其左侧操作数?
优惠活动
大模型
产品
解决方案
定价
更多

C++中>>运算符的返回值是否为其左侧操作数?

结论

这个说法是完全正确的。

原理说明

C++标准库的流运算符(包括输入用的>>提取运算符、输出用的<<插入运算符)在设计时就明确要求:运算符重载函数会返回左侧操作数(也就是流对象本身)的左值引用。
这个设计的核心目的就是支持链式调用:

  • 你给出的示例中cin >> a >> b >> c会被拆解为((cin >> a) >> b) >> c:第一步cin >> a执行完成后返回cin本身,返回的cin继续作为下一个>>运算符的左操作数和b运算,以此类推,最终实现连续向多个变量赋值的效果。
  • 同理示例里的输出语句cout << a << endl << b运行逻辑也是一致的,每次<<运算后都返回cout本身,支持连续输出。

额外补充:因为>>返回的是流对象本身,你也可以直接把输入语句放在条件判断中,比如:

int num;
while (cin >> num) {
    // 只要输入流处于有效状态,就会持续读取整数
}

这种写法的本质就是利用返回的流对象的隐式布尔转换特性,判断当前流是否正常、有没有遇到EOF或者输入错误。


内容的提问来源于stack exchange,提问作者CD S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 22:27:03