C++引用和函数的高级用法

函数

  1. 内联函数
  2. 重载函数
  3. 默认
  4. 递归函数

引用的概念

  • 引用的定义和初始化
  1. 引用是个别名
  2. 引用的初始化
  3. 引用作为目标的别名而使用,对引用的改动实际就是对目标的改动。
  4. 为了建立引用,先写上目标的类型,再加上引用运算符”&”,然后是引用的名字。
  5. 引用能引用任何合法变量名

引用的初始化

#include
#include
using namespace std;
int main()
{
    int intone=5;
    int& rint=intone;
    cout<<"intone = "< 
   
  • 它们占用同一块内存
  • #include
    #include
    using namespace std;
    int main()
    {
        int intone=5;
        int& rint=intone;
        cout<<"intone = "< 
       
  • 不能建立引用的数组
    例如:int a[10];
    int& ra[10]=a; //error
  •  int a;
     int& ra=a;
     int& *p=&ra; //error企图定义一个引用的指针
     
    
    int& ri=NULL; //毫无意义
    
    nt& ra=int; //error初始化时用数据类型初始化了
    

    用引用传递函数参数(传值,传地址)

    1. 引用作为形参
    (传地址)
    #include
    #include
    using namespace std;
    void jxbswap(int &a,int &b)//int *a,int *b;两个*号同除以&则变为&
    {
        int temp;
        temp=a;
        a=b;
        b=temp;
    }
    int main()
    {
        int x=10,y=20;
        jxbswap(x,y);//原为&x,&y;同除以&,则为x,y;
        cout<<"x = "< 
       
  • 引用作为返回值
    • 是有问题的
    
    #include
    #include
    using namespace std;
    int *swap()
    {
        int temp=12;
        return &temp;//temp空间释放
    }
    int main()
    {
        int *x=swap();//*x成为野指针
        cout<<"*x = "<<*x<
    • 利用引用,则不会有错
    include
    #include
    using namespace std;
    int &swap()
    {
        int temp=12;
        return temp;//temp空间释放
    }
    int main()
    {
        int &x=swap();//*x成为野指针
        cout<<"x = "<
    • 使用引用作为参数和返回值给函数的意义
    1. 函数只能返回一个值。如果程序需要从函数返回两个值怎么办
    2. 解决这一问题的办法之一是用引用给函数传递两个参数,然后由函数往目标中填入正确的值
    3. 函数返回值时,要生成一个值的副本。而用引用返回值时,不生成值的副本,所以提高了效率

    你可能感兴趣的:(C++引用和函数的高级用法)