引用的概念和应用

定义一个引用,并将其初始化为引用某个变量
类型名&引用名=变量名;

int n = 4;
int& r = n; // r引用了 n,r的类型是  int &

某个变量的引用,等价于这个变量,相当于该变量的 一个别名。

int n = 4;
int & r = n;
r = 4;

cout << r; //输出 4
cout << n; //输出 4
n = 5;
cout << r; //输出 5

引用的概念

定义引用时一定要将其初始化成引用某个变量。

初始化后,它就一直引用该变量,不会再引用别
的变量了。

引用只能引用变量,不能引用常量和表达式。

double a = 4, b = 5;
double & r1 = a;
double & r2 = r1;   // r2也引用 a

r2 = 10;
cout << a << endl; // 输出 10
r1 = b; // r1并没有引用b
cout << a << endl; //输出 5

引用应用的简单示例

C语言中,如何编写交换两个整型变量值的函数?

void swap( int * a, int * b)
{
  int tmp;
  tmp = * a; 
  * a = * b;
  * b = tmp;
}
int n1, n2;
swap(& n1,& n2) ; // n1,n2的值被交换

有了 C++的引用:

void swap( int & a, int & b)
{
  int tmp;
  tmp = a;
  a = b; 
  b = tmp;
}
int n1, n2;
swap(n1,n2) ; // n1,n2 的值被交换

引用作为函数的返回值

int n = 4;
int & SetValue() { return n; }
int main()
{
  SetValue() = 40;
  cout << n;
  return 0;
}//输出:40

常引用

不能通过常引用去修改其引用的内容:

int n = 100;
const int & r = n;
r = 200; //编译错
n = 300; //没问题

常引用和非常引用的转换

const T &和T &是不同的类型!

T &类型的引用或T类型的变量可以用来初始化const T &类型的引用。

const T类型的常变量和const T &类型的引用则不能用来初始化T&类型的引用,除非进行强制类型转换。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容