有人可以解释一下吗? [C ++]

时间:2015-11-11 15:32:27

标签: c++

来自C ++ Primer:

  

下一个声明

std::cin >> v1 >> v2; 
     

读取输入。输入操作符(»运算符)表现   类似于输出操作员。它需要一个istream   左手操作数和一个对象作为右手操作数。它读   来自给定istream的数据并存储给定的读取内容   宾语。与输出运算符一样,输入运算符返回它   左手操作数作为结果。因此,这个表达是等价的   到

(std::cin >> v1) >> v2;

我不明白。这两个表达式是如何相同的?也许这很简单。但是我没理解。

3 个答案:

答案 0 :(得分:3)

operator>>只有2个操作数和返回值,所以当你写:std::cin >> v1 >> v2时,它意味着:

result = std::cin >> v1
result >> v2

这里的其他例子:a + b + c

result = a + b
result + c

答案 1 :(得分:0)

std::cin >> v1是一个表达式,可以将数据读入v1并评估为std::cin。也许它有助于将其可视化:

(std::cin >> v1) >> v2;
//reads into v1 and evaluates to
(std::cin) >> v2; 
//equivalent to
std::cin >> v2;

答案 2 :(得分:0)

您可以将第一个变体视为第二个变体的简写。类似于a + b + c实际上是(a + b)+ c,意味着首先添加a和b,取结果并向其添加c。所以这里,std :: cin>> v1返回一个流,我们接受它并用v2操作生成的流。您可以选择()。