你好,游客 登录 注册 搜索
背景:
阅读新闻

C++中的引用

[日期:2017-01-06] 来源:Linux社区  作者:metalsteel [字体: ]

一,C++中引用的基础知识

1.引用的基本概念

  1.所谓的引用其实就是对变量起“别名”。引用和变量对应得是相同的内存,修改引用的值,变量的值也会改变,和指针类似。

  2.引用在定义的时候必须要初始化,初始化后就用引用的对象绑定在一起了。

  3.引用本身不是对象,不能定义引用的引用。

2.引用的意义

  1.引用作为其他变量的别名存在,因此在一些场合可以用来替代指针。

  2.引用相对于指针来说具有更好的可读性和实用性。

3.引用的定义方式

  数据类型 &引用名称 = 变量;

# include<iostream>
using namespace std;

int main()
{
    // 定义变量a
    int a = 10;
    // 定义引用b
    int &b = a;

    return 0;
}

二,引用的本质

1.引用的本质剖析

# include<iostream>
using namespace std;

int main()
{
    // 定义变量a
    int a = 10;
    // 定义引用b
    int &b = a;
    // 引用一旦初始化,就不再改变本身所绑定的对象,因此引用很想一个const修饰的常量
    cout << "&a = " << &a << endl;
    cout << "&b = " << &b << endl;
    // 通过打印地址,发现变量和引用的地址相同,因此引用本质是一个指针

    return 0;
}

2.引用的本质分析

  1.引用的初始化之后不允许被修改,因此引用是一个常量。

  2.引用的地址和变量本身的地址一样。因此引用是一个指针。

  3.引用的本质是一个常量指针,只是C++编译器帮助我们进行了自动取地址操作和解引用操作。

  4.上述的案例的本质:int &b = a; 相当于 int * const b = &a;

三,引用的重点

1.引用作函数参数

  引用作函数参数可以用来替代指针,在函数内部操作引用,就可以修改函数外部变量的值。

2.引用作函数返回值(此处涉及类的拷贝构造函数)

  引用作函数返回值,如果返回的是栈变量,则实际返回的是该变量的一份拷贝。

3.指针引用

  引用是指针类型的,例如:Teacher teacher = {"王刚",21};Teacher * &t = &teacher;

4.常引用

  使用变量初始化引用,使引用具有只读属性,保护了引用所指向的对象,防止被函数内部修改。

  使用字面量初始化引用,例如:const int &a = 10;是可以的,这里会在编译期间对字面量常量分配内存空间,在上一节的const中有提过。

linux
相关资讯       C++引用 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款