zoukankan      html  css  js  c++  java
  • 常引用

    普通的引用:

    1. int a=10;

        int &b=a;//b就是a,a就是b,b相当于a的别名,可以通过修改b的值来改变a的值

        b=20;

        cout<<"a="<<a<<endl;//输出的结果是20,b的值被改变,a的值相应地也被改变

    2.int &a=10;//非法!引用的本质是给内存起别名。而10是一个字面量,是不放在内存里面的,因而没有地址,即:(&10)是错的,压根不存在。                                                                                                                                                                                          

    常引用:

    1. int x=10;

        const int &y=x;//y是x的常引用,y本身是const int类型,其值不能被修改

        y=20;//非法!y的值不允许修改!

        x=30;//合法,x的值可以改变

        cout<<"x="<<x<<endl;

    2.const int &a=10 //合法,C++编译器自己分配了一块int的内存空间,然后用a指向这块内存。

    //常引用通常被用来传参,使得参数具有只读属性而不能被修改

    例如:

    struct Teacher

    {

        int age;

        char name[64];

    };

    void fun(const Teacher &temp)

    {

        t.age=30;//非法!常引用的值不能被修改

        cout<<"age:"<<temp.age<<endl;

        cout<<"name:"<<temp.name<<endl;

    }

    void main()

    {

        Teacher t;

         t.age=25;

         strcpy(t.name,"Li");

        fun(t);

    }

  • 相关阅读:
    ARC081F Flip and Rectangles
    LCA
    Tarjan
    2020牛客暑期多校六
    状压DP
    操作系统
    JAVA期末复习
    D. Yet Another Yet Another Task (区间最值)
    构造
    Codeforces Round #641 (Div. 2)
  • 原文地址:https://www.cnblogs.com/jswu-ustc/p/8303529.html
Copyright © 2011-2022 走看看