下面有关C++的一些叙述中,错误的有( )
A)程序片段“int j=10,k=11,&i=j; i=k; k=12; std::cout<<i<<' '<<j<<' '<<k;”输出:12 12 12
B)引用变量定义时必须进行初始化,在程序中对引用的存取都是对它所引用的变量的存取,可以取引用的地址,引用变量不能再指向别的变量。
C)返回引用必须保证返回的引用变量有合法的内存空间,并且不在函数的运行栈中。
D)使用const常引用参数不需要制作数据的副本,所以可以提高程序的运行性能。
E)有函数“void f1(int n);”声明,则:可以在函数内修改n,但值不会影响调用者;可用表达式或变量作为实参调用该函数。
F)有函数“void f2(int &n);”声明,则:可以在函数内修改n,值会影响调用者;可用表达式或变量作为实参调用该函数。
G)有函数“void f3(const int &n);”声明,则:不可以在函数内修改n;只能用同类型的变量作为实参调用该函数。

c++多选题求大佬帮忙!!!!
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Timothy6 2020-03-09 18:42关注
A.错误,i是j的引用,在执行i=k的时候是相当于把k赋值给了j,即11;而这之后k=12k变成了12,因此输出时j是11,i由于引用j也是11,而k是12
B.可以说是对的。但是要注意取引用的地址是取它所引用的变量的地址
C. 正确。在函数的运行栈里的变量是局部变量,函数一旦结束就销毁了,引用失效
D. 正确,不多说
E. 正确。形参与实参结合的效果有些**类似于**用实参初始化(复制构造)形参,也就是说,形参只是一个拷贝,与实参是两个不同的变量,用不同的内存空间
F. 错误。我们说的引用时左值引用,而表达式的值不一定是左值,很可能是右值,不能被左值引用所引用
G. 正确。不能通过const常引用改变其引用的值本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 1