C++中,int&&表示什么意思?和int&有什么不同?
2个回答
展开全部
在C++中,函数void func(int &p,int q)中的第一个形式参数p是“int型引用”类型。引用是C++的特殊变量类型,它是已有变量的别名。主调函数调用func把实参传给p时,实际上是给实参起了个别名p,所以在函数中对p的操作就是对主调函数中的对应实参的操作,将会使实参发生永久性改变。而func中的第二个形参int q是普通的int类型,调用时只是将实参的“值”拷贝给q,所以在函数中对q的操作并不影响主调函数中的实参值。
int &p这样写,只在作为函数的形式参数时是正确的,若是在声明语句则必须初始化,只有写成int a,&p=a;才是正确的,因为如前所述引用“是已有变量的别名”,所以不可能独立存在。
题面代码在调用func时把x传给了第一个int引用形参p(称为引用传递),把y传给了第二个普通int形参q(称为值传递或拷贝传递),函数中语句p=q;把y的值赋给了p,由于p是x的别名,所以使主调函数中x的值变成了y的值2;而q=t;语句虽使函数中的q变量的值变为x原先的值1,但由于q只是y的拷贝,所以并不能影响到主调函数中y变量的值。所以正确选项是D。
展开全部
你好,int&&可以理解为右值引用,其作用是将变量绑定到一个临时变量上,一般是函数返回值。
如:
int somemethod()
{
int a = 10;
return a;
}
int&& b = some_method();
这样可以减少函数返回操作并且赋值操作时new、delete、copy操作,提高效率。特别是当返回类型比较庞大的时候,作用明显。
int&&作为形参的情况,作用类似。
如:
int somemethod()
{
int a = 10;
return a;
}
int&& b = some_method();
这样可以减少函数返回操作并且赋值操作时new、delete、copy操作,提高效率。特别是当返回类型比较庞大的时候,作用明显。
int&&作为形参的情况,作用类似。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |