美文网首页
cpp notes 4

cpp notes 4

作者: loughsjtu | 来源:发表于2023-01-24 20:29 被阅读0次

    1. 引用的基本语法

    数据类型 &别名=原名

    别名和原名操控的是同一块内存,功能类似equivalence.

    int a=10;

    int &b=a;

    int &c; //错误,引用必须初始化

    int c=20;

    int &b=c; //错误,引用一旦初始化,不可以更改引用.

    2.引用的用途:引用做函数参数,可以实现形参修饰实参的作用。示例:

    a.值传递

    void myswap01(int a, int b)

    {

    temp=a;

    a=b;

    b=temp;

    }

    b.地址传递

    void myswap02(int *a, int*b)

    {

    int temp=*a;

    *a=*b;

    *b=temp;

    }

    c. 引用传递

    void myswap03(int &a, int &b)

    {

    int temp=a;

    a=b;

    b=temp;

    }

    int main(){

    int a=10;

    int b=20;

    myswap01(a,b);

    myswap02(*a,*b);

    myswap03(a,b);

    }

    3. 引用做函数返回值

    注意不要返回局部变量的引用

    函数的引用可以作为左值

    int& test02() //声明一个类型为引用的函数test02

    {

    static int a=10; //静态变量,存放在全局区,全局区的数据在程序结束后由系统释放

    return a;

    }

    int &ref=test02(); //test02是一个类型为引用的变量,所以要声明一个类型为引用的变量ref去接收其数据。

    cout <<ref<<endl; //会输出10

    test02()=20; //函数的引用可以作为左值

    cout <<ref<<endl; //会输出20,因为ref和test02()都是全局变量a的引用,都是指向同一处内存。

    cout <<ref<<endl; 会输出10

    test02()=20; //函数返回值的引用作为左值

    cout <<ref<<endl; //会输出20,因为ref和test02其实都是全局变量a的引用,指向的是同一处内存。

    相关文章

      网友评论

          本文标题:cpp notes 4

          本文链接:https://www.haomeiwen.com/subject/yjcdhdtx.html