2015-02-06 73 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)。