2015-02-06 91 views
0

在C中,当我们想输入一个整数例如,我们可以使用scanf()
将我们的输入保存到的变量作为指针传递,这对函数需要此变量的地址是有意义的,否则一旦函数返回,输入值就会丢失。C++ cin >> x如何工作

如何(在C++中)cin>>x,我明白是cin.operator>>(x)工作,如果我没有传递给它的地址?

+2

C++有引用,它们基本上是指针,但没有'&'语法。 – 2015-02-06 19:26:28

+0

在您最喜欢的C++教科书中阅读*参考*。 'operator >>()'方法通过* reference *接受参数。 – 2015-02-06 19:26:37

+0

我还没有学过参考资料,但现在我明白了,谢谢。 – 2015-02-06 19:28:48

回答

2

“我知道cin.operator >>(x)怎么能工作,如果我不传递一个地址给它?”

这是因为

std::istream& operator>>(std::istream& is, <type>& obj); 
               //^

函数的签名需要基准参数为obj

C++引用以某种方式将传递指针替换为提供的参数,但也需要使用有效地址进行初始化。

这适用于任何基本类型以及标准库的某些复杂类型(例如std::string)。