函式名前加 & 符號的深入理解 C++
阿新 • • 發佈:2018-12-05
#include <iostream> using namespace std; int& test_str() { int a = 1; return a; //通過返回 a 的地址來進行 值的返回(即 a的地址中所儲存的值) } int ff(int t) //返回的就是個數 a 的值,a屬於區域性變數,函式呼叫完後記憶體自動釋放,地址也就不存在 //所以執行 &ff(b) 會報錯 :“&”要求左值 ,即沒有地址可以取 { static int a = 3; return a; } int& fun(int &a) { cout<<"aa "<< &a << endl; return a; } int main() { /*int *p= &test_str(); cout << *p << endl; cout << *p << endl;*/ int b ; cout <<"b: "<< &b << endl; b = 4; cout << "fun :" << &fun(b) << endl;int a; cout <<"a:"<< &a << endl; a= fun(b); //把 fun(b) 地址中儲存的值 賦值 給 a ,因此 a 的地址沒有發生改變 cout <<"a :"<< &a << endl; /*int b = 1; cout << "b :" << &b << endl; int *p = new int; *p = ff(b);*/ //cout << "ff :" << &ff(b) << endl;return 0; }