C/C++编程:引用初始化

作用:绑定引用到对象

  • 引用类型的变量必须使用派生自引用类型的对象进行初始化,或使用可转换为派生自引用类型的类型的对象进行初始化。
  • 使用临时对象初始化引用的唯一方式是初始化常量临时引用。
  • 初始化后,引用类型变量始终指向同一对象;不能将它修改为指向另一个对象。也就是说,一旦初始化,则不能更改引用使之引用另一对象。

举个例子:

#include <stdio.h>

int iVar;
long lVar;

int main(int argc, char **argv)
{
    
    
    // 引用类型的变量必须使用派生自引用类型的对象进行初始化
   // long & longRef1 = iVar; //错误:将类型为‘long int&’的引用初始化为类型为‘int’的表达式无效1
    long & longRef2 = lVar;
    const long & longRef3 = iVar;
    const long & longRef4 = lVar;
    printf("%ld\t", longRef2);
    
    longRef2 = 23L;            
    //longRef3 = 11L;               // 错误:向只读形参‘longRef3’赋值
    //longRef4 = 11L;               // 错误:向只读形参‘longRef4’赋值
    printf("%ld\n", longRef2);
    return 0;
}

在这里插入图片描述

尽管语法相同,但引用类型变量引用引用类型变量赋值在语义上不同:

  • 初始化指定引用类型变量指向的对象;
  • 赋值通过引用向引用目标对象赋值。

猜你喜欢

转载自blog.csdn.net/zhizhengguan/article/details/115302807