首页 > 试题广场 >

下面哪些属于使用"常引用"的原因?

[不定项选择题]
下面哪些属于使用"常引用"的原因?
  • 提高程序的效率
  • 节省存储空间
  • 保护传递给函数的数据不在函数中被改变
  • 以上都不正确
C
如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。常引用声明方式:const 类型标识符 &引用名=目标变量名
发表于 2015-01-26 13:01:30 回复(0)
更多回答
B也应该是对的呀,省去了参数的复制,肯定要节省存储空间呀
发表于 2015-10-04 17:08:57 回复(9)
流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。
编辑于 2016-11-21 08:39:58 回复(3)

如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。常引用声明方式:const 类型标识符 &引用名=目标变量名;

例1

int a ;

const int &ra=a;

ra=1; //错误

a=1; //正确

例2

string foo( );

void bar(string & s);

那么下面的表达式将是非法的:

bar(foo( ));

bar("hello world");

原因在于foo( )和"hello world"串都会产生一个临时对象,而在C++中,这些临时对象都是const类型的。因此上面的表达式就是试图将一个const类型的对象转换为非const类型,这是非法的。

引用型参数应该在能被定义为const的情况下,尽量定义为const 。

发表于 2014-10-25 00:26:11 回复(1)
答案:C  系统推荐答非所问
常引用就是规定引用对象内容为常量,不能改变。
它的作用跟我们定义常数类型,是为了包含数据不被非法改变

发表于 2015-01-26 11:22:07 回复(3)
AB是引用的好处,C是常引用比引用又好在了哪里,所以这答案不对吧
发表于 2017-02-18 10:45:23 回复(1)
在C++中,B应该也对,做常变量放在符号表中放着,是编译时常量,不为其分配内存,做形参也会和实参共用同一片内存,不为其分配内存;
在C语言中,就是错的,常变量会分配内存。

发表于 2017-04-11 22:26:06 回复(0)
这题我不服,正确答案就应该是c
发表于 2018-06-27 00:14:44 回复(0)
这答案又变了。。ABC。。。
发表于 2018-05-07 21:32:11 回复(0)
AB是引用的好处吧,所以常引用应该还是c吧~
发表于 2018-03-16 11:27:35 回复(0)
我就不明白了。这里常引用的原因应该包括“常”和“引用”两方面吧?“常”避免数据被改变,函数传递时引用避免了内存拷贝,应该可以节省内存空间和提高程序效率吧?
发表于 2017-03-11 10:23:18 回复(0)
为什么常引用可以提高程序的效率?引用不分配空间,不是节省空间了吗?求解释!
发表于 2016-08-24 16:43:41 回复(1)
http://blog.csdn.net/zerocboy/article/details/51494798
说使用引用有节省存储空间的作用是错误的。网上说并未规定要不要为引用分配空间,但自己通过结构体发现占用了空间!
int a=3;
class A
{
public:
    A():ra(a){}
private:
    int &ra;
};
//在64位系统中,sizeof(A)为8!
发表于 2016-06-12 15:53:41 回复(5)
在C++11中引用分左引用和右引用,而且只有const左值引用的说法,它的其中一个作用是可以绑定一个右值(临时对象或值),而非const左值引用只能绑定左值。但在c++11之前,确实“常引用”有A,C的作用。
发表于 2015-09-11 17:39:52 回复(0)
在C++面向对象程序设计中,经常用常指针和常引用作函数参数。这样既能保证数据安全,是数据不能被随意修改,在调用函数时又不必建立实参的拷贝。
发表于 2015-08-27 14:09:12 回复(0)
不是说引用在调试版本占用4个内存(32位操作系统),在发行版本不占内存,这难道不能算作减少变量空间?
发表于 2015-08-20 14:33:36 回复(1)