C++中函数返回引用,作为左值有啥用?怎么用?

最好能举两个例子,实在是看不懂书上的,写得太简洁了、

引用和指针是相对的,引用是变量的一个别名,实际上和变量是同一块内存。
例子:
int a=0;
int * ptr_A=&a;
int &b=a;
a是一个变量赋值为0,
ptr_A是指针,操作系统会分配一块内存给这个指针,而分配给它的内存的内容是变量a的地址(指针),
而b则是和a用的同一块内存,没有分配内存的过程,因此 引用的执行速度比指针还要快,
编写程序的时候尽量用引用,而不是指针,除非真的做不来

而返回左值意味着对变量进行了赋值。追问

比如
int& han(int& a)

{

~~~~~~~~

return a;

}

然后有调用它

han(int& b)++;

这个 ++ 是干什么的嘛!

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-06
http://baike.baidu.com/view/2129184.htm
这个讲得很详细,你先看下,如果还有不明白的可以追问。本回答被提问者采纳

谁知道C++中“引用”作为函数返回值的好处
用引用,可以使函数调用作为左值.引用表达式是一个左值表达式,因此它可以出现在形、实参数的任何一方。若一个函数返回了引用,那么该函数的调用也可以被赋值。一般,当返回值不是本函数内定义的局部变量时就可以返回一个引用。在通常情况下,引用返回值只用在需要对函数的调用重新赋值的场合,也就是对函...

c++中的左值、右值、左值引用、右值引用、引用分别是什么
左值引用和右值引用是对应的引用概念。左值引用通常用于常规引用,而右值引用则是C++11引入的新概念,仅能绑定到右值上。在C++标准中,对左值、右值的定义更为具体。左值被视为具有指向函数或对象的引用,如指针表达式 *E 的结果是一个指向所指对象的左值表达式。右值则是短暂存在的对象,通常接近其生命周...

看得懂解析——C++引用做返回值
故引用作为返回值时,不可返回局部变量的引用,而允许引用作为左值。理解引用实质为指针常量有助于深入理解,指针常量的概念能有效辅助理解。引用作为返回值的使用需留意局部变量的生命周期,避免引用局部变量的错误。综上所述,C++引用作为返回值的运用需明确其限制和功能特性,结合指针常量的概念深入理解。

c++里面的左值和右值是怎么用的?
a=c;\/\/*a是左值。在C++中,有的操作左值右值都可以,有的只能是左值,如++,--,=,op=,还有函数引用参数。引用类型是左值,如果你想用函数返回一个左值,那么要用&声明。如:int & pow(int a)return a*a } 这样pow(3)++也可以,默认函数返回的是右值,是不可以++的。

C++中提到的左值是什么意思
在C语言中,左值(left value),指在赋值表达式(assignment expression)中作为将要赋予值的地址的表达式。例如在赋值语句 i = 10;中i就是一个左值,它必须是一个变量,或是一个解引用的指针(如下)int *p;*p = 10;在C的yacc语法中,赋值表达式被这样定义 assignment_expression: conditional_...

c++里左值引用和右值引用使用时要注意哪些问题
比如int *p = &5; 另外 C++ primer里面提到 前缀++返回左值,后缀返回右值。也可以通过左值与右值的概念来理。引用(reference)是c++的初学者比较容易迷惑的概念。下面我们比较详细地讨论引用。 一、引用的概念 引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。 例如:...

c++中的左值与右值
C++中的左值与右值是理解新语义如move\/forward的关键概念,尤其是在C++11之后。简单来说,左值是指拥有名字,可以取地址的值,如变量,它们能出现在运算表达式的两边;而右值则是没有名字,不能取地址的值,如临时变量、函数返回值和字面常量。在C++11中,右值被细分为纯右值(prvalue)和将亡值(x...

c++函数返回引用
int sum()返回int,就好像5 = 1,怎么能赋值。int* sunm()返回的是地址,指针赋值是 *p = 6;这么写的

C++中左值与右值
C++11版本中,引入了右值引用的概念,这一概念使得代码的优化和性能提升成为可能。右值引用能够绑定到临时对象上,并在函数调用时传递这些对象,从而避免了不必要的对象复制和内存分配,这在提高程序运行效率上具有显著作用。左值引用和右值引用是C++11中新增的引用类型。左值引用是能够引用左值的引用,而右值...

C++函数返回引用问题
C++为“引用“赋于了新的内涵:当函数的形式参数使用“引用类型”时,函数内对“引用”的操作可以改变原变量的值,而用变量类型作形式参数时是拷贝传值,没有这种优势。返回”引用“的函数在函数名前加一个&,再前面是类型名,比如int &index()是返回一个int型“引用”,因为“引用”是int型某变量...

相似回答