C/C++ 引用与指针的传递

  在C中函数参数的传递方式有两种,值传递和指针传递,而C++添加了一种:引用传递。下面的例子可作为参考:

  (1)值传递

  void func1(int x)

  {  x = x + 10;  }

  ...

  int n = 0;

  func1(n);

  std::cout << n << std::endl;      // n = 0

  (2) 指针传递

  void func2(int *x)

  {  (*x) = (*x) + 10;  }

  ...

  int n = 0;

  func2(n);

  std::cout << n << std::endl;    // n = 10;

  (3) 引用传递

  void func3(int &x)

  {   x = x + 10;  }

  ...

   int n = 0;

  func3(n);

  std::cout << n << std::endl;    // n = 10

  

  针对于引用而言,是C++中的概念,引用有一些规则如下:

  (1) 引用被创建的同时必须被初始化,而指针可在任何时候被初始化

  (2)不可有NULL引用,引用必须与合法的存储单元关联,而指针可为空

  (3)一旦引用被初始化,就不能改变其关系,而指针可以随时改变所指对象

  引用可以做的事情,指针同样可以,然而,指针的过于强大,使得非常危险。简单而言,杀鸡焉用牛刀,砍破了手指才明白,的确应该“用适当的工具做适当的事情”吧 ^_^

  

原文地址:https://www.cnblogs.com/SkyflyBird/p/4573321.html