c – 传递对引用的引用

前端之家收集整理的这篇文章主要介绍了c – 传递对引用的引用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我认为在C中传递对引用的引用是违法的.但是,当我运行此代码时,它没有给我任何错误.
void g(int& y)
{
   std::cout << y;
   y++;
 }

 void f(int& x)
{
  g(x);
}
int  main()
{
  int a = 34;
  f(a);
  return 0;

 }

不是正式的参数
G()
是否有资格作为参考?

解决方法

1)传递对引用的引用没有任何问题(它是move-constructor和move-assignment运算符使用的 – 虽然它实际上被称为rvalue-reference).

2)你正在做的是没有传递对引用的引用,而是通过f将相同的引用传递给g:

void g(int& x)
{
    x = 5;
}

void f(int& x)
{
    std::cout << "f-in " << x << std::endl;
    g(x);
    std::cout << "f-out " << x << std::endl;
}

int main()
{
    int x = 42;
    f(x);
    std::cout << "New x = " << x << std::endl;
}

猜你在找的C&C++相关文章