SimpleMLXG
2020-03-09 16:03
采纳率: 67.5%
浏览 390

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

    已采纳该答案
    1 打赏 评论

相关推荐 更多相似问题