1. 程式人生 > >函式名前加 & 符號的深入理解 C++

函式名前加 & 符號的深入理解 C++

#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; }