SimpleMLXG 2020-03-09 16:03 采纳率: 0%
浏览 447
已采纳

c++多选题求大佬帮忙!!!!

下面有关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;只能用同类型的变量作为实参调用该函数。

  • 写回答

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常引用改变其引用的值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器