cpp 引用

定义

int a = 10;
int &ref = a;

对ref更改即对a地址下的值进行更改 (与指针相同)

引用与函数

1. 引用创建时必须初始化 而指针可以初始化也可以不被初始化

  • 引用一旦与某个对象建立了关联 在生命周期不能再引用其他对象 而指针可以任何时候转向其他对象
  • 不允许存在空引用 不许与有效空间对象建立关联 c++允许存在空指针
  • 引用是与地址间接产生联系 指针变量的内容就是地址 与地址产生直接联系
  • 引用不占用内存空间 指针占用
  • 不存在引用的引用 指针可以有引用

指针的引用

int *p;  //定义指针变量p
int *&rp = p;  //创建p的引用rp,rp是指针类型
int m =10; 
rp = &m; //rp储存m的地址

2. 引用作为函数返回值

当函数返回值是引用:

  • 接受返回值的变量也是引用:创建了一个对返回变量的引用
  • 接受返回值的变量不是引用:将函数返回值直接赋给这个变量

函数返回值不是引用:

  • 不能用引用接收这个返回值

3.常引用

  • 若一个函数的返回值为引用 则这个值不能是常量 如:
int & bard()
{
  return 3;
}
  • 需要声明为常引用 此时返回值可以是常量 如:
const int & bard()
{
  return 3;
}
  • 在程序中创建了常引用 则不能通过常引用来更改引用对象的值 只能对原对象修改
  • 函数形参为常引用时 相应实参可以使常量或变量表达式 如果函数形参为非常引用 则相应实参必须为左值 如
void f( int & i)
{
  i =100;
}
  main()
{
  int a = 1;
  f(1);
  f(a);
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容