C++中,int&&表示什么意思?和int&有什么不同?

如题所述

    在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。

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-02-02
你好,int&&可以理解为右值引用,其作用是将变量绑定到一个临时变量上,一般是函数返回值
如:
int somemethod()
{
int a = 10;
return a;
}
int&& b = some_method();
这样可以减少函数返回操作并且赋值操作时new、delete、copy操作,提高效率。特别是当返回类型比较庞大的时候,作用明显。

int&&作为形参的情况,作用类似。本回答被网友采纳

C++中,int&&表示什么意思?和int&有什么不同?
你好,int&&可以理解为右值引用,其作用是将变量绑定到一个临时变量上,一般是函数返回值。如:int somemethod(){ int a = 10;return a;} int&& b = some_method();这样可以减少函数返回操作并且赋值操作时new、delete、copy操作,提高效率。特别是当返回类型比较庞大的时候,作用明显。int&&作为形参...

C++中int和int&怎么区分?到底什么时候该用int,什么时候改用int&呢?
边便是指向的数据是常量,在*右边表示指针本身是常量,根据你的需要使用即可。--- 可以把变量赋值给限定符不少于该变量的变量(限定符包括const volatile mutable等)。比如 const char*p1; const char * const p2 = p1; 是可以的,因为p2的限定符不少于p1,当然 const char *p3=p1也是可以的。...

C++中,int *& 与 int &* 的区别、意义及使用
int &*a 可以解释为,int类型引用 的指针(C++不允许声明 指向引用的指针)。const 是限定符 const int a; \/\/const 限定 int,即 a 是一个变量,类型为int的常量。(所以,int常量不可修改,所以a也不可修改)int const a; \/\/ const 限定 a,即 a 是一个常量,类型为int。const int *a;...

c++ (int) 与(int *)与(int &)区别在哪?
第一种,无论是98,还是‘b’,在内存中的存储形式都是以2进制保存的98,如果使用或c语言的printf就会知道,那是一个格式化输出语句,就是将内存的数据以怎样的形式输出,(int)是以整形的格式输出。第2和3的格式我就不懂了,但第3个应该是输出了第4个元素的内存地址。如果可以很好的理解内存的话...

C++中,int *& 与 int &* 的区别、意义及使用
int else \/\/在16位平台 define int int endif 因为int类型在不同位的计算机上大小不一样,int 类型32位计算机为 4字节 int 类型16位计算机为 2字节 这样同样的代码在不同机器上编译就会产生错误。所以在头文件内定义了宏 int以明确为2字节 int类型。所以你使用int能肯定数据是2字节大小。但是使用...

c++中INT 和INT &返回有什么区别 具体点啊
int& set(){ return a;} 在第二个例子中,返回的是引用,那么,就相当于返回的是变量a的别名,就可以对该变量操作,如赋值等等。set() = 5;是正确的。但是在引用返回时得注意一个问题,就是不能返回局部变量的引用,如:int& set(){ int a;return a;} 此时就会调用出错,因为a是临时变量...

int 在C++中是什么意思
int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同。1.例如:INT(8.9)将8.9向下舍入到最接近的整数(8)INT(-8.9)将-8.9向下舍入到最接近的整数(-9)2.

c++中INT 和INT &返回有什么区别 具体点啊
int max(int a, int b) \/\/返回的是值 { return (a > b) ? a : b;} int &max(int &a, int &b) \/\/返回的是实参的引用,就是实参本身 { return (a > b) ? a : b;}

c++中int*&p和int&*p的区别
c++中int *&p和int &*p的区别为:性质不同、 使用不同、访问不同。一、性质不同 1、int *&p:int *&p是指针的int类型引用。2、int &*p:int &*p是引用的int类型指针。二、 使用不同 1、int *&p:int *&p是指针 的 别名 ,可以当成指针使用。2、int &*p:int &*p指针不能指向引用...

int & 是什么意思?
引用啊 比如说int a=3;int &b=a;那么b就是a的别名,a与b指向相同的地址空间。若b发生变化,a跟着同样发生变化。另外声明引用时必须初始化,不能先声明再赋值。

相似回答