简述:引用

引用的基本使用

作用: 给变量起别名(类似给人起小名,如:张三 小名叫小三  )

语法: 数据类型 &别名 = 原名

 1 int main() {
 2 
 3     int a = 10;
 4     int &b = a;
 5 
 6     cout << "a = " << a << endl;
 7     cout << "b = " << b << endl;
 8 
 9     b = 100;
10 
11     cout << "a = " << a << endl;
12     cout << "b = " << b << endl;
13 
14     system("pause");
15 
16     return 0;
17 }

引用注意事项

  • 引用必须初始化

  • 引用在初始化后,不可以改变

int main() {

    int a = 10;
    int b = 20;
    //int &c; //错误,引用必须初始化
    int &c = a; //一旦初始化后,就不可以更改
    c = b; //这是赋值操作,不是更改引用

    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    cout << "c = " << c << endl;

    system("pause");

    return 0;
}

引用的本质

本质:引用的本质在c++内部实现是一个指针常量.

//发现是引用,转换为 int* const ref = &a;
void func(int& ref){
    ref = 100; // ref是引用,转换为*ref = 100
}
int main(){
    int a = 10;
    
    //自动转换为 int* const ref = &a; 指针常量是指针指向不可改,也说明为什么引用不可更改
    int& ref = a; 
    ref = 20; //内部发现ref是引用,自动帮我们转换为: *ref = 20;
    
    cout << "a:" << a << endl;
    cout << "ref:" << ref << endl;
    
    func(a);
    return 0;
}

引用的优点

  • 引用传递的效果与指针传递的效果一致,相较于指针传递可读性更强。
  • 底层实现与指针类似,但编译器保证一定不为空,更为安全。
  • 使用指针传递时,会产生一个对应数据的副本,这就导致在使用对象或者容器时,就会产生较大的效率与内存占用的问题,但引用传递就没有这些问题。

结论

  C++推荐用引用技术,因为语法方便,可读性更强

posted @ 2021-06-24 09:47  清水石头  阅读(138)  评论(0)    收藏  举报