C++函数和函数的调用
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++函数和函数的调用相关推荐
- 作业函数的定义与调用
作业函数的定义与调用 在 OneFlow 中,将训练.预测任务封装在一个函数中,统称为作业函数(job function),作业函数联系用户的业务逻辑与 OneFlow 管理的计算资源. 在 OneF ...
- 函数的四种调用模式.上下文调用.call.apply
闭包:函数就是一个闭包,一个封闭的作用域; 返回函数,要返回多个函数就用一个对象封装一下, 立即执行函数+return 回调函数 JS动态创建的DOM,不会被搜索引擎抓取,对SEO不友好. /*win ...
- Matlab编程与数据类型 -- 函数M文件的调用
本图文介绍了Matlab中函数M文件的调用方式.
- 37 函数的定义和调用
技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.函数的定义方式 函数声明方式function关键字(命名函数) function fn ...
- 【 C 】函数参数通过传值调用还是传址调用?
C 函数的所有参数均以 "传值调用" 方式进行传递,这意味着函数将获得参数值的一份拷贝.这样函数就可以放心修改这个拷贝值,而不必担心会修改调用程序实际传递给它的参数. 既然调用函数 ...
- c++纯虚函数在父类中调用的规避
构造和析构函数不允许调用纯虚函数,可以先调用虚函数,里面再调用纯虚函数实现. class Base{ public: virtual void foo()=0; Base() { ca ...
- 单片机c语言调用函数费时,下头函数,只要被调用就会导致单片机死机,请大家帮忙分析...
当前位置:我的异常网» C语言 » 下头函数,只要被调用就会导致单片机死机,请大家帮 下头函数,只要被调用就会导致单片机死机,请大家帮忙分析 www.myexceptions.net 网友分享于:2 ...
- Shell函数返回值、删除函数、在终端调用函数
Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () {list of commands[ return value ] } ...
- Python自定义函数的创建、调用和函数的参数详解
这篇文章主要介绍了Python自定义函数的创建.调用和函数的参数.变量作用域等常见问题,需要的朋友可以参考下 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性 ...
- 存储过程和函数——概述||创建存储过程||调用存储过程||查看存储过程||删除存储过程
存储过程和函数概述 存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合, 调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理 ...
最新文章
- MathML + MathJax在网页中插入公式
- AppController
- ip pim spare 源树 和 共享树_iPhone通过内置应用与电脑传输共享文件指南
- 农业部部署农业大数据发展工作 评:对农业现代化很重要
- AI + 3D!英伟达开源3D深度学习框架Kaolin
- 如何纠正孩子打人、骂人的习惯?
- 如何在Bash脚本中将Heredoc写入文件?
- python自动化办公要学多久-基于python实现自动化办公学习笔记三
- 基于论辩图谱的互动论点对识别
- vba移动文件_你想要的爬虫、VBA系列教程这里都有!
- 关于使用keil5软件进行stm32的简单嵌入编程
- 【软件版本】软件版本GA、RC、Beta、Alpha等的详细解释和含义
- Vue 生成海报图的方法
- 10大关键词解读中国互联网五年间创新飞跃在哪里
- 云呐:机房资产管理系统web版,设备资产信息管理的应用
- Magnetic Levitation for Soft-Tethered Capsule Colonoscopy Actuated With a Single Permanent Magnet
- Android 9 按音量键音量调节流程
- 3d打印价格怎么算的
- Delphi 11.2 安装 CnWizards 组件包
- 基于 LwIP 协议栈实现 tun2sys-socket,网络游戏加速器(一类)
热门文章
- java调用linux系统命令_java 调用linux系统命令
- k8s基本概念-如何使用私有regsitry
- Kubernetes1.91(K8s)安装部署过程(六)--node节点部署
- GO语言的进阶之路-流程控制
- 安防监控芯片市场高清化趋势愈显 成行业共识
- Mac OSX上pg gem的安装问题
- oracle HWM
- 关于全局低级键盘hook的记录(WH_KEYBOARD_LL)
- 【黑金动力社区】【bf531 体验板教程】第六章 可编程标志口(八)
- Net设计模式实例之桥接模式( Bridge Pattern)(1)