栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++引用

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++引用

引用

T & 别名 = 目标变量原名

int  a = 10;
int& b = a;
cout << &a << endl;
cout << &b << endl;
//输出结果:每次执行输出结果不一样因为是地址。
003DFEE8
003DFEE8
  1. 引用变量的类型必须与它的实体类型一致或者实体可转为引用类型。

  2. 引用必须初始化。

  3. 引用只能对引用一个实体,但一个实体可以有多个引用。

  4. 引用不是指针因为引用不是指向目标变量,而是给目标变量起新名字。

  5. 对引用的使用方法与原实体的使用方法一致

    单独对5的解释
    //对实体a的引用
    int a =  10;
    int& b = a;
    cout << &a << endl;
    cout << &b << endl;//引用与原实体使用方法一致
    //对实体指针p的引用
    int* p = &a;
    int* bp = &p;
    cout << *p<< endl;
    cout << *bp << endl;//引用与原实体使用方法一致

    笼统地讲,引用就是在原本变量的地址上重新加入一个新名称。

一、普通引用

①常量引用-变量:指引用名定义为常量,实体是变量

int a = 10;
int const &b = a;//常量引用只能读不能写,但是原变量a可以写
//上面是 int 转为 int const& 

②常量引用-常量:

int const  a = 100;  
int const & b = a;  //类型一致

③变量引用-变量:省略

int a = 10;   //可读可写
int& b = a;  //可读可写

④变量引用-常量:不存在

int const  a = 10;  
int  & b = a;//错误,int const 无法转换为int

函数引用的前提知识

main 函数内的变量是全局变量,还是局部变量?

(1)main 函数内的变量不是全局变量,而是局部变量

(2)只不过它的生命周期和全局变量一样长而已

(3)全局变量一定是定义在函数外部的

二、函数与引用 (1)引用作为参数

我们想为什么会出现值传递、引用传递和指针所代表的地址传递呢?

void swap(int& left,int& right)
{
    int tmp = left;
    left = right;
    right = tmp;
}
void main(){
   int a = 10;
   int b = 20;
    swap(a,b);
    cout< 

我们可以用地址理解:

值传递:对新创建的地址空间上的内容进行操作。

用引用方法接收:是直接在实参的地址上对内容进行操作(只不过是换了个名儿)。

用指针方法接收:是重新创建了一个地址空间存放指针,但是指针指向了实参的地址,通过解指针可以对实参地址上的内容进行操作。

(2)引用作为函数返回值

①不要返回局部变量的引用--严重的错误

因为局部变量(除了main函数的局部变量)在,函数结束地址就被回收,别名就没有依托了。

②返回全局变量的引用

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/857430.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号