c++返回引用问题

*include <io...
int &f1(int &a1);
void main()
{int x=2;
int b1=f1(x)
cout<<"b1="<<b1<<endl;}
int &f1(int &a1)
{a1+=a1; return a1;}

int &f1(int &a1)
{a1+=a1; return a1;} 这是什么意思?没见过这样定义的阿~ 请讲一下int &x 是怎么回事?

楼上二位不要瞎说。

&有两个用法:
1.取地址操作符,如int *p = &a; // a的地址存储在p中。
2.引用操作符,如int &b = a; // 声明b为a的引用,即a和b是一个东西。

楼主的代码里的&都是引用操作符,所谓引用,相当于别名,比如说你儿子叫你爸爸,你老婆叫你老公,名字不一样,人是一个。

int &f1(int &a1)
{a1+=a1; return a1;}
这里,函数的参数 和返回值都是引用,就是说,在函数里面对a1的操作即使函数调用结束也有效。
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-06-11
我只知道这个定义是定义一个函数,&这个标志一般是指地址的意思。
定义一个地址函数,然后被调用,我也没见过。不知道高手有没?回答下。
第2个回答  2007-06-11
"a1+=a1"就是a1=a1+1
int &x 就是x的地址定义为int类型

c++函数的返回值类型---引用&非引用
c++函数返回值类型:引用与非引用的区别在c++中,函数的返回值类型有明显区分,主要分为返回非引用类型和返回引用类型。两种方式在处理数据时有着显著的不同。1. 返回非引用类型 当你调用一个函数并期望函数返回一个新的对象或值时,它通常会返回非引用。这种方式下,函数创建了一个新的对象并将其值返...

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

c++返回引用的问题
如果返回一个类的对象的话,建议还是把返回值写成引用的形式,这样做有两个好处,第一个是保证了返回的类一定是存在的,否则有可能已经被析构了导致错误,第二个是提高了程序的效率,因为省去了复制的过程,这是因为函数返回后,系统产生一个匿名对象,并复制为返回的对象,之后你使用的都是这个匿名对...

c++ 函数返回引用问题
首先,永远不要返回局部变量的引用。因为局部变量在函数返回时被回收,即这个变量不存在了,所以以后对这个变量的引用都是无意义的,结果是不可预知的,程序很可能会崩溃。因此,也就不解释这种情形的结果了。由于静态变量的声明周期直到程序结束,所以返回静态变量的引用是有意义的,而且安全的。下面解释返...

C++返回引用的问题
return n;} 这里不需要返回引用 如你写的,函数调用结束后,函数栈会被销毁,引用不到了 例子:函数返回值(int Func1())时,要产生一个临时变量作为函数返回值的副本(保存该函数调用中要返回的值),而用引用返回值(int &Func2())时,不产生值的副本。故在用函数返回值定义一个引用(int &...

C++ 返回值 引用
引用引用的也是地址,cout<<语句会将地址重新定向,所以返回的地址就不再是引用原来那个值了。就会出现一个奇怪的值。(我执行结果是b:4198699)可以用两个改进办法,一个是把那两句int& f(int &a);改成int f(int &a);这样返回的是值而不是引用,就不会错了。第二个是把子函数里 int c;改...

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

C++运算符重载,+-*\/的重载,返回值为什么是对象而不是对象的引用?而流操...
<<,>>可以返回引用,而且不返回引用也是编译不过的,貌似是c++的要求。可以不用引用试一试,有的编译器会出来一个ios_base.h文件,就是想告诉你用引用。返回引用也是可以解释的。 比如还是上面的A类型,如下 ostream& operator<<(ostream& out, const A& a) { out<<A.x<<' '<<A.y<<endl; ...

C++中返回引用的作用是什么?没有&就是不引用也没多大问题吧?
它们不能返回引用,Effective C++[1]的Item23详细的讨论了这个问题。主要原因是这四个操作符没有side effect,因此,它们必须构造一个对象作为返回值,可选的方案包括:返回一个对象、返回一个局部变量的引用,返回一个new分配的对象的引用、返回一个静态对象引用。根据前面提到的引用作为返回值的三个规则...

C++返回引用类型
& fun() { int a; a=10; return a; } 这样是不行的,因为a会在fun退出时被销毁,这时返回的a的引用是无效的。这种情况下,如果fun的返回类型不是int & 而是int就没有问题了。因此,要返回一个引用时,“临时变量”不能是“临时”的,至少得等函数外部使用完毕这个引用之后,才能销毁它。

相似回答
大家正在搜