C++中的引用类型

语法:数据类型 &别名 = 原名;

                        用别名操作原名的内存,相当于指针

                            !!引用必须初始化

                        引用初始化后不可以更改 相当于-> 指针常量

                        引用相当于指针,在编译的时候编译器直接做解引用操作

                    引用做函数的返回值

                        1.不要返回局部变量的引用

                            局部变量存放再栈区,当运行之后自动释放,第一次能得到正确的值,因为编译器保留第一次的值,之后的值就会直接释放掉,

                        2.函数的调用可以作左值

                    引用的本质:在c++中是一个指针常量:

                        1.常量指针:const int *p = NULL;指针指向的值不可以改变

                        2.指针常量:int *const p  = NULL;一旦初始化后就不可以改变,指针指向是不可以改变的,指针指向的值是可以改变的的

                    优点:简化指针,语法方便,逻辑简单

#include "iostream"
#include "string"
using namespace std;
                   

/*返回引用类型*/
int& add(){
     //int a = 10;
    //注意:不要返回局部变量的引用,在linux中编译都过不去
    //return a;
    static int n = 10;
    return n;
}
/*交换函数 ->引用参数为引用,实现的为地址传递*/
int swap(int& a,int& b){
   
    int c = 0;
    c = a;
    a = b;
    b = c;
    return c;
}

int main(void){
    int a = 10;
    int b = 20;
    
    int t = swap(a,b);

    cout<<"a<->b="<<t<<endl;

    cout<<"a="<<a<<endl;
    cout<<"b="<<b<<endl;
    cout<<"----------------------"<<endl;
    int& c = add();
    cout<<"第一次用引用的返回:"<<c<<endl;
    cout<<"第一次用引用的返回:"<<c<<endl;
    /*引用做左值*/
    add() = 2000;
     cout<<"add()引用做左值:"<<add()<<endl;
     cout<<"add()引用做左值的c:"<<c<<endl;
     /*因为cadd()和c都是*/
    
    
     

 
    return 0;


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值