006_linuxC++之_引用

1. 什么是“引用”?申明和使用“引用”要注意哪些问题?

答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。

(一)直接看代码

(二)使用符号"&"进行引用,在这里不是取址的意思
2. “引用”与指针的区别是什么?

指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;

而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。此外,就是上面提到的对函数传ref和pointer的区别。

#include <iostream>
using namespace std;
int add(int a){
    a = a + 1;
    return a;
}
int add(int *a){
    *a = *a + 1;
    return *a;
}
int add_ref(int &b){
    b = b + 1;
    return b;
}
int main(int arg,char ** argv){
    int a = 99;
    int &c = a;                /*使用符号&来进行引用,引用之后c++就相当于a地址中的数进行a++*/
    cout<<add(a)<<endl;        /*传入的是参数*/  /*a = 99*/
    cout<<"a = "<<a<<endl;                      /*a = 99*/
    
    cout<<add(&a)<<endl;    /*传入的地址*/    /*a = 100*/
    cout<<"a = "<<a<<endl;                      /*a = 100*/

    cout<<add_ref(a)<<endl;    /*引用*/          /*a = 101*/
    cout<<"a = "<<a<<endl;                      /*a = 101*/
    
    c++;                                      /*a = 102*/
    cout<<"a = "<<a<<endl;                      /*a = 102*/
    cout<<"c = "<<c<<endl;                      /*a = 102*/
    return 0;
}

main.cpp

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值