C++基础--引用

2019-08-31 07:15:46来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

C++基础--引用

引用的概念:

  引用就是对象的另外一个名字,这些名字都指向同一块地址。对其中任何一个名字的操作实际上都是对同一个地址单元的操作。在实际的开发中,引用多用作函数的形参使用。

引用的特点:

  ①、引用是一种复合类型,不能定义引用类型的引用,但可以定义其他类型的引用。

  ②、一个对象可以有多个引用。

  ③、普通引用在使用必须用于与该引用同类型的对象初始化,且一经初始化后不能将这个引用绑定到其他对象。

引用的应用:

1、基础引用:

void testFunction()
{
    int a = 4;
    int &b = a;
    cout<<" a= "<< a <<endl;
    cout<<" b= "<< b <<endl;
    b = 100;
    cout<<" a= "<< a <<endl;
}

2、引用做形参:

  当传入的形参是一个数据结构或是一个对象时,采用引用做形参的好处不会产生临时拷贝,传递参数的效率高且占用空间小。

引用可以引用变量、数据结构,指针。

void testFunction(int &a, int &b)
{
        int temp = 0;
        temp = a;
        a = b;
        b = temp;
}
struct testDemo
{
    int id;
    char name[64];
};

int testGetMem(struct testDemo * &p)
{
    p = (struct testDemo *)malloc(sizeof(struct testDemo));
    if( p == NULL)
    {
        return (-1);
    }
    p->id = 100;
    strcpy(p->name,"testName");
    return 0;
}

int main()
{
    struct testDemo *fp;
    testGetMem(fp); 
    cout<<fp->id<<endl;
    cout<<fp->name<<endl;
    return 0;
}

3、引用做为返回值

  引用做函数返回值不能返回局部变量的引用,不能返回函数中new分配内存的引用,容易造成内存泄露,可以返回const 类成员的引用,引用做返回值是可以做左值的。

int& testFunction()
{
    static int a = 10;
    return a;
}

int main()
{
    cout<<testFunction()<<endl;  //打印10
    testFunction()=200;
    cout<<testFunction()<<endl; //打印200
    return 0;
}

 4.const 引用:

  const引用是指向const对象的引用,也叫常引用其定义形式为 const type &name = vale;这样定义不能通过引用对目标变量的值进行修改,从而达到了引用的安全性。

 

void testFunction()
{
    int a = 4;
    const int &b = a;
    cout<<a<<endl;
    b = 200; //报错 assignment of read-only reference 'b'
    cout<<a<<endl;    
}

 


原文链接:https://www.cnblogs.com/slwang-27921804/p/11436377.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:C++开发新版本vs使用旧版本vs编译的静态库动态库

下一篇:洛谷 P1244 青蛙过河