c++函數返回值的引用

最近在複習丟掉的c++知識點,複習到引用時發現一個很有趣的點,原網址是http://c.biancheng.net/cpp/biancheng/view/2762.html

作爲函數返回值的引用類型

下面的代碼略有深度,初學者如果無法理解請跳過。請先看下面的程序,有沒有問題?
  1. #include <iostream>
  2. using namespace std;
  3. int &f();
  4. int x;
  5. int main ( )
  6. {
  7. f() = 100;
  8. cout << x << endl;
  9. return 0;
  10. }
  11. int &f()
  12. {
  13. return x;
  14. }
許多人都認爲第9句錯了,少數人認爲第4句可能有問題。事實上,這個程序完全正確。

上面這個函數的返回值是引用類型,通過函數結果的設置反過來去改變“源頭”數據,這種“逆向引用”爲C++增強了很多功能,當然也有許多需要注意的地方。

還是第一次碰到“結果改變源頭”,哈哈,這是個不錯的網站。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章