在C中,当我们想要输入一个整数时,我们可以使用scanf()
保存输入的变量作为指针传递,这对于函数需要该变量的地址是有意义的,否则一旦函数返回,输入的值就会丢失。
如果我没有传递地址,我在cin>>x
处理{(1 +)cin.operator>>(x)
怎么办?
答案 0 :(得分:2)
&#34; C ++ cin&gt;&gt; x,我理解为cin.operator&gt;&gt;(x),如果我没有传递地址就可以工作吗?&#34; < / em>的
这是因为
的签名std::istream& operator>>(std::istream& is, <type>& obj);
// ^
函数为obj
采用引用参数。
C ++引用以某种方式将传递指针替换为提供的参数,但也需要使用有效地址进行初始化。
为任何原始类型以及标准库的一些复杂类型(例如std::string
)实现了这一点。