当前位置:   article > 正文

C++ 传值调用

C++ 传值调用

C++ 传值调用

向函数传递参数的传值调用方法,把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。

默认情况下,C++ 使用传值调用方法来传递参数。一般来说,这意味着函数内的代码不会改变用于调用函数的实际参数。函数 swap() 定义如下:

  1. #include <iostream>
  2. using namespace std;
  3. // 函数定义
  4. void swap(int x, int y)
  5. {
  6. int temp;
  7. temp = x; /* 保存 x 的值 */
  8. x = y; /* 把 y 赋值给 x */
  9. y = temp; /* 把 x 赋值给 y */
  10. return;
  11. }
  12. int main ()
  13. {
  14. // 局部变量声明
  15. int a = 100;
  16. int b = 200;
  17. cout << "交换前,a 的值:" << a << endl;
  18. cout << "交换前,b 的值:" << b << endl;
  19. // 调用函数来交换值
  20. swap(a, b);
  21. cout << "交换后,a 的值:" << a << endl;
  22. cout << "交换后,b 的值:" << b << endl;
  23. return 0;
  24. }
  1. 交换前,a 的值: 100
  2. 交换前,b 的值: 200
  3. 交换后,a 的值: 100
  4. 交换后,b 的值: 200

C++ 指针调用

向函数传递参数的指针调用方法,把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。

按指针传递值,参数指针被传递给函数,就像传递其他值给函数一样。因此相应地,在下面的函数 swap() 中,您需要声明函数参数为指针类型,该函数用于交换参数所指向的两个整数变量的值。

  1. #include <iostream>
  2. using namespace std;
  3. // 函数声明
  4. void swap(int *x, int *y);
  5. int main ()
  6. {
  7. // 局部变量声明
  8. int a = 100;
  9. int b = 200;
  10. cout << "交换前,a 的值:" << a << endl;
  11. cout << "交换前,b 的值:" << b << endl;
  12. /* 调用函数来交换值
  13. * &a 表示指向 a 的指针,即变量 a 的地址
  14. * &b 表示指向 b 的指针,即变量 b 的地址
  15. */
  16. swap(&a, &b);
  17. cout << "交换后,a 的值:" << a << endl;
  18. cout << "交换后,b 的值:" << b << endl;
  19. return 0;
  20. }
  21. void swap(int *x, int *y)
  22. {
  23. int temp;
  24. temp = *x;
  25. *x = *y;
  26. *y = temp;
  27. return;
  28. }
  1. 交换前,a 的值: 100
  2. 交换前,b 的值: 200
  3. 交换后,a 的值: 200
  4. 交换后,b 的值: 100

C++ 引用调用

  1. #include <iostream>
  2. using namespace std;
  3. // 函数声明
  4. void swap(int *x, int *y);
  5. int main ()
  6. {
  7. // 局部变量声明
  8. int a = 100;
  9. int b = 200;
  10. cout << "交换前,a 的值:" << a << endl;
  11. cout << "交换前,b 的值:" << b << endl;
  12. /* 调用函数来交换值
  13. * &a 表示指向 a 的指针,即变量 a 的地址
  14. * &b 表示指向 b 的指针,即变量 b 的地址
  15. */
  16. swap(&a, &b);
  17. cout << "交换后,a 的值:" << a << endl;
  18. cout << "交换后,b 的值:" << b << endl;
  19. return 0;
  20. }
  21. // 函数定义
  22. void swap(int &x, int &y)
  23. {
  24. int temp;
  25. temp = x; /* 保存地址 x 的值 */
  26. x = y; /* 把 y 赋值给 x */
  27. y = temp; /* 把 x 赋值给 y */
  28. return;
  29. }
  1. 交换前,a 的值: 100
  2. 交换前,b 的值: 200
  3. 交换后,a 的值: 200
  4. 交换后,b 的值: 100

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/427631
推荐阅读
相关标签
  

闽ICP备14008679号