C++函数的调用与参数的传递
四种不同类型的函数:
1、返回类型 函数名(参数列表) //返回
2、返回类型 函数名()
3、void 函数名(参数列表) //不需要返回
4、void 函数名()

形式参数与实际参数(形参和实参)
1、函数定义中的参数为形式参数, 如long long C(int n,int m)中的n和m为形式参数,也不一定一定要用n,m,完全可以用a,b代替。
2、实际参数是指实际调用函数时传递给函数的参数的值。如调用函数C(6,3)这里的6和3就是实际参数,其中6传递给n,3传递给m。

参数的传递
1、传值参数————这里的值不光包括数值,还包括字符等类型的值。
2、引用参数————函数定义时在变量类型符号之后形式参数之前加上“&”,则该参数就是引用参数,把参数声明成引用参数,实际上就是改变了默认
默认的按值传递参数的传递机制,引用参数会直接关联到其绑定的对象,而并非这些对象的副本,形参就像是对应实参的别名,
形参的变化会保留到实参中。(实际上 a 和 &a 看似不一样,其实表示的是一个值)

典型实例:把a=3,b=4的值交换,既a=4,b=3

#include<iostream>
using namespace std;
void swap(int a,int b);
int main()
{int a=3,b=4;swap(a,b);cout<<a<<" "<<b<<endl; }
void swap(int a,int b)
{int temp;temp=a;a=b;b=temp;cout<<a<<" "<<b<<endl;        //验证改变的是形参,这里的a,b是形参
}

这个程序中main函数中的a,b和swap函数中的a,b不是一个值,swap函数中的a,b只能在swap函数中使用,是形参。程序中虽然调用了swap函数,
但是,实际上是把3传给了形参a,4传给了形参b,swap函数值是把形参交换了,实际参数并没有改变。
修改一下函数:

#include<iostream>using namespace std;
void swap(int &a,int &b);
int main()
{int a=3,b=4;swap(a,b);cout<<a<<" "<<b<<endl; }
void swap(int &a,int &b)
{int temp;temp=a;a=b;b=temp;cout<<a<<" "<<b<<endl;        //验证改变的是形参,这里的a,b是形参
}        

swap函数中使用了“&”,表示传递过来的是引用,实际上就是实参的另一个名称而已。这和我们人有一个学名和一个乳名但都是指一个人,是一个道理。

其实还有一种把变量地址作为参数传递的函数,这样以后学到指针的时候才能理解。可以先看一下

#include<iostream>
using namespace std;
void swap(int *a,int *b);
int main()
{int a=3,b=4;swap(&a,&b);cout<<a<<" "<<b<<endl;}
void swap(int *a,int *b)
{ int temp;temp=*a;*a=*b;*b=temp;cout<<*a<<" "<<*b<<endl;        //验证改变的是形参,这里的a,b是形参
}

转载于:https://www.cnblogs.com/legenBlog/p/10493859.html

C++函数和函数的调用相关推荐

  1. 作业函数的定义与调用

    作业函数的定义与调用 在 OneFlow 中,将训练.预测任务封装在一个函数中,统称为作业函数(job function),作业函数联系用户的业务逻辑与 OneFlow 管理的计算资源. 在 OneF ...

  2. 函数的四种调用模式.上下文调用.call.apply

    闭包:函数就是一个闭包,一个封闭的作用域; 返回函数,要返回多个函数就用一个对象封装一下, 立即执行函数+return 回调函数 JS动态创建的DOM,不会被搜索引擎抓取,对SEO不友好. /*win ...

  3. Matlab编程与数据类型 -- 函数M文件的调用

    本图文介绍了Matlab中函数M文件的调用方式.

  4. 37 函数的定义和调用

    技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.函数的定义方式 函数声明方式function关键字(命名函数) function fn ...

  5. 【 C 】函数参数通过传值调用还是传址调用?

    C 函数的所有参数均以 "传值调用" 方式进行传递,这意味着函数将获得参数值的一份拷贝.这样函数就可以放心修改这个拷贝值,而不必担心会修改调用程序实际传递给它的参数. 既然调用函数 ...

  6. c++纯虚函数在父类中调用的规避

    构造和析构函数不允许调用纯虚函数,可以先调用虚函数,里面再调用纯虚函数实现. class Base{ public:     virtual void foo()=0;     Base() { ca ...

  7. 单片机c语言调用函数费时,下头函数,只要被调用就会导致单片机死机,请大家帮忙分析...

    当前位置:我的异常网» C语言 » 下头函数,只要被调用就会导致单片机死机,请大家帮 下头函数,只要被调用就会导致单片机死机,请大家帮忙分析 www.myexceptions.net  网友分享于:2 ...

  8. Shell函数返回值、删除函数、在终端调用函数

    Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () {list of commands[ return value ] } ...

  9. Python自定义函数的创建、调用和函数的参数详解

    这篇文章主要介绍了Python自定义函数的创建.调用和函数的参数.变量作用域等常见问题,需要的朋友可以参考下 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性 ...

  10. 存储过程和函数——概述||创建存储过程||调用存储过程||查看存储过程||删除存储过程

    存储过程和函数概述 存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合, 调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理 ...

最新文章

  1. MathML + MathJax在网页中插入公式
  2. AppController
  3. ip pim spare 源树 和 共享树_iPhone通过内置应用与电脑传输共享文件指南
  4. 农业部部署农业大数据发展工作 评:对农业现代化很重要
  5. AI + 3D!英伟达开源3D深度学习框架Kaolin
  6. 如何纠正孩子打人、骂人的习惯?
  7. 如何在Bash脚本中将Heredoc写入文件?
  8. python自动化办公要学多久-基于python实现自动化办公学习笔记三
  9. 基于论辩图谱的互动论点对识别
  10. vba移动文件_你想要的爬虫、VBA系列教程这里都有!
  11. 关于使用keil5软件进行stm32的简单嵌入编程
  12. 【软件版本】软件版本GA、RC、Beta、Alpha等的详细解释和含义
  13. Vue 生成海报图的方法
  14. 10大关键词解读中国互联网五年间创新飞跃在哪里
  15. 云呐:机房资产管理系统web版,设备资产信息管理的应用
  16. Magnetic Levitation for Soft-Tethered Capsule Colonoscopy Actuated With a Single Permanent Magnet
  17. Android 9 按音量键音量调节流程
  18. 3d打印价格怎么算的
  19. Delphi 11.2 安装 CnWizards 组件包
  20. 基于 LwIP 协议栈实现 tun2sys-socket,网络游戏加速器(一类)

热门文章

  1. java调用linux系统命令_java 调用linux系统命令
  2. k8s基本概念-如何使用私有regsitry
  3. Kubernetes1.91(K8s)安装部署过程(六)--node节点部署
  4. GO语言的进阶之路-流程控制
  5. 安防监控芯片市场高清化趋势愈显 成行业共识
  6. Mac OSX上pg gem的安装问题
  7. oracle HWM
  8. 关于全局低级键盘hook的记录(WH_KEYBOARD_LL)
  9. 【黑金动力社区】【bf531 体验板教程】第六章 可编程标志口(八)
  10. Net设计模式实例之桥接模式( Bridge Pattern)(1)