美文网首页
C++之引用

C++之引用

作者: 二进制人类 | 来源:发表于2022-10-21 09:40 被阅读0次

概述

引用的本质是给已经存在的变量取别名

定义的步骤

int func(int a,int b){
    return a + b;
}

void test(){
    //1.
    int num = 1;
    int &b = num;
    //2.
    int arr[5]={1,2,3,4,5};
    int (&myArray)[5] = arr;
    //3.
    typedef int ArrayType[5];
    ArrayType &myArray1 = arr;
    //4.
    int &element = arr[1];
    element = 1000;//1,1000,3,4,5
    //5.
    int *p = num;
    int* &myP = p;
    //6.
    int (&myFun)(int,int) = func;
}

引用作为函数的形参

引用作为函数的形参,函数内部可以通过形参引用 修改外部变量的值。

void setData01(int a)//int a= data
{
    a = 100;
}
void setData02(int *p)//int *p = &data;
{
    *p = 100;
}
void setData03(int &b)//int &b=data
{
    //函数内部 b是data的别名 操作b等价操作外部的data
    b = 100;//data=100
}

void test()
{
    int data = 10;
    //函数内部不能修改外部变量值
    //setData01(data);

    //传递变量的地址 函数内部可以修改外部变量的值
    //setData02(&data);

    setData03(data);
    cout<<"data = "<<data<<endl;
}

指针变量和引用作为函数的形参的区别

1、他们的共同点 在函数内部都能修改外部变量的值

2、指针变量:占空间、实参传地址、必须对指针变量取*

3、引用:不占空间、实参传变量、不取*

引用作为函数的返回值类型

链式操作的时候 引用作为函数的返回值类型。

int& getData(void){
    static int data = 100;
    return data; //返回谁 就是谁的别名  不要返回普通局部变量的引用
}
void test(){
    int &ret = getData();
    getData() = 1000;
    cout<<ret<<endl; //1000
}
struct Print
{
    Print& printStr(Print &ob, char *str)
    {
        cout<<str;
        return ob;
    }
};

void test()
{
    Print ob1;                                                     ob1.printStr(ob1,"hehe").printStr(ob1,"xixi").printStr(ob1,"haha").printStr(ob1,"heihei");
}

常引用

//给100去个别名
const int &a = 100;

常引用主要用于函数的形参,函数内部 不能通过常引用修改外部变量的值。

void printData(const int &a)
{
    //a=200;//err
    cout<<"data="<<a<<endl;
}

void test()
{
    int data = 10;
    printData(data);
}

引用的本质

应用的本质是常量指针

int data = 10;
int &a = data; /*等价于->*/ int * const a = &data; 
a = 20; //data = 20


相关文章

  • C++特性之引用 (Boolan)

    C++特性之引用 (Boolan) 本章内容:1 引用的不同用例1.1 引用变量1.2 引用数据成员1.3 引用参...

  • Reference 引用

    c++之 引用&参数传递 引用是C++中的概念,初学者容易把引用和指针混淆一起。 一下程序中,n是m的一个引用(r...

  • C++之引用

    概述 引用的本质是给已经存在的变量取别名 定义的步骤 引用作为函数的形参 引用作为函数的形参,函数内部可以通过形参...

  • c++学习文档-更新于2020年12月05日

    c++学习文档汇总 [TOC] c++ primer部分 c++学习笔记 引用(左值引用) int &ref...

  • C++中容易被忽略的基础知识

    const和define的区别C++中static关键字的总结C++中的构造函数及深拷贝浅拷贝c++基础之引用和指...

  • c++之引用/reference

    引用的简单用法 number 即为 amount的引用,可以认为是amount的别名,引用的本质和指针一样,都是地...

  • c++之reference(引用)

    ■在C语言中,使用指针(Pointer) 可以间接获取、修改某个变量的值■在C+ +中,使用引用(Referenc...

  • C++基础

    C++ 值传递、指针传递、引用传递详解C++中引用传递与指针传递区别 引用传递和指针传递的区别 引用的规则:(1)...

  • c++指针与引用

    title: c++之指针与引用tags: 语言工具 c++categories: c++date: 2019-0...

  • [C++之旅] 4 C++的引用

    [C++之旅] 4 C++的引用 基本数据的引用 apple_a为apples的引用,修改apple_a等同于修改...

网友评论

      本文标题:C++之引用

      本文链接:https://www.haomeiwen.com/subject/zllpzrtx.html