C++后端高频面试方向:右值引用

您所在的位置:网站首页 什么是右值引用 C++后端高频面试方向:右值引用

C++后端高频面试方向:右值引用

2023-09-14 01:27| 来源: 网络整理| 查看: 265

右值引用 引入及概念:

C++98中提出了引用的概念,引用即别名,引用变量与其引用实体公共同一块内存空间,而引用的底层是通过指针来实现的,因此使用引用,可以提高程序的可读性

示例:引用交换变量 void Swap(int& left, int& right) { int temp = left; left = right; right = temp; }

为了提高程序运行效率,C++11中引入了右值引用,右值引用也是别名,但其只能对右值引用

示例: int Add(int a, int b) { return a + b; } int main() { //右值示例 const int&& ra = 10; // 引用函数返回值,返回值是一个临时变量,为右值 int&& rRet = Add(10, 20); return 0; }

注:为了与C++98中的引用进行区分,C++11将该种方式称之为右值引用

1、左值和右值 概念: 左值与右值是C语言中的概念,但C标准并没有给出严格的区分方式 一般认为:左值可放在赋值符号的左边,右值可以放在复制符号的右边;或者能够取地址的称为左值,不能取地址的称为右值

注:左值也能放在赋值符号的右边,右值只能放在赋值符号的右边

示例: int g_a = 10; // 函数的返回值结果为引用 int& GetG_A() { return g_a; } int main() { int a = 10; int b = a; int* p=new int(0); // a和b,p和*p都是左值,说明:左值既可放在=的左侧,也可放在=的右侧 const int c = 30; //c = a; // 特例:c虽然是左值,但是为const常量,只读不允许被修改 cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3