当函数的形参是变量时,函数内的操作是只对形参的操作,并不会对实参造成影响

当函数的形参是引用时,在函数内对形参操作的同时也会对实参造成影响

 1 #include <iostream>
2 using namespace std;
3 void SwapValue(int a, int b)//在主函数之前设置自定义函数,形参是变量时的传递值
4 {
5 int tmp;//定义变量 tmp 用于a,b值交换
6 tmp = a;
7 a = b;
8 b = tmp;
9 cout << "在SwapValue()函数中:\t\ta =" << a << ",b=" << b << endl;
10 return;
11 }
12 void SwapRef(int& a, int& b)//设置两个引用a,b,形参是引用时的传递值
13 {
14 int tmp;//用于a,b值交换
15 tmp = a;
16 a = b;
17 b = tmp;
18 cout << "在SwapRef函数中:\t\ta =" << a << ",b=" << b << endl;
19 return;
20 }
21 int main()
22 {
23 int a = 10, b = 20;
24 cout << "数据交换前:\t\ta=" << a << ",b=" << b << endl << endl;
25 SwapValue(a, b);//调用SwapValue函数
26 cout << "调用SwapValu()后:\t\t a=" << a << ",b=" << b << endl;//原因是在函数中只有形参被交换,实参未被交换,因此输出值未被交换,
27 a = 10;
28 b = 20;
29 SwapRef(a, b);//调用SwapRef函数
30 cout << "调用SwapRef()后:\t\ta=" << a << ",b=" << b << endl;//输出值被交换,原因是函数的形参是引用,函数内部对形参的交换就是对实参的交换
31 return 0;
32 }

最新文章

  1. Lesson 15 Good news
  2. save_data
  3. Scala 深入浅出实战经典 第55讲:Scala中Infix Type实战详解
  4. 高性能的分布式内存对象缓存系统Memcached
  5. boost 1.57.0安装
  6. PHP浮点数的一个常见问题的解答 (转载 http://www.laruence.com/2013/03/26/2884.html)
  7. c# DataTable 中 Select 和 Clone 用法结合
  8. maven snapshot和release版本号之间的差
  9. Python内置函数(29)——slice
  10. git 学习(4) ----- git rebase
  11. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-&gt;用户管理模块新增“重置用户密码”功能
  12. VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——AlbumView相册控件的使用方式
  13. vue学习(1)
  14. 弹窗中修改select默认值遇到的问题
  15. Ubuntu中编译helloworld驱动
  16. Webpack Plugin
  17. 【代码审计】eduaskcms_v1.0.7前台存储型XSS漏洞分析
  18. c++ 自定义类型,函数指针类型
  19. C++ Builder创建和调用dll中的资源
  20. [爬虫] 学Scrapy,顺便把它的官方教程给爬下来

热门文章

  1. i春秋时间
  2. tostring、(string)和 String.valueOf()
  3. 【CDH数仓】Day01:概念、环境搭建、CDH数仓搭建、用户行为数仓搭建
  4. SQL语句筛选/查询
  5. .net6制作让同事不能上网的arp欺骗工具
  6. Selenium4+Python3系列(十二) - 测试框架的设计与开发
  7. 瞧瞧别人家的API接口,那叫一个优雅
  8. 制作 Python Docker 镜像的最佳实践
  9. Python全栈工程师之从网页搭建入门到Flask全栈项目实战(6) - Flask表单的实现
  10. Blazor组件自做十四 : Blazor FileViewer 文件预览 组件