调用函数

article/2025/9/24 0:34:36

我们定义函数的目的就是调用此函数。
下面来介绍一下调用函数:

函数调用的形式

调用函数的一般形式为:
函数名(实参表列)

如果调用的是无参函数,则“实参表列”可以没有,但括号不能省略。
如果实参表列包含多个实参,则各参数间用逗号隔开。

按函数调用在程序中出现的形式和位置来分,可以有以下3种函数调用方式。
1.函数调用语句
把函数调用单独作为一个语句,
如:
printf_star(),
这时不要求函数带回值,只要求函数完成一定的操作。
2.函数表达式
函数调用出现在另一个表达式中,
如:
c = max(a,b)
max(a,b)是一次函数调用,他是赋值表达式的一部分。
这是要求函数带回一个确定的值以参加表达式的运算。
3.函数参数
函数调用作为另一个函数调用时的实参。
如:
m = max(a,max(b,c))
其中,max(b,c)是一次函数调用,他的值是b和c二者中的大者,
把这个结果再次参与调用,会得出a,b,c中的最大值。

函数调用时的数据传递

1.形式参数和实际参数
在调用有参函数时,
主调函数和被调用函数之间有数据传递关系。
在定义函数时,函数名后面的括号中的变量名称为“形式参数“(简称”形参“)或”虚拟参数“。
在主调函数中调用一个函数时,函数名后面括号中的参数称为”实际参数“(简称”实参“)
实际参数可以是常量、变量或表达式。

注意区分主调函数和被调用函数。

2.实参和形参间的数据传递
在调用函数时,系统会把实参的值传递给被调用函数的形参。
或者说,形参从实参得到一个值。
该值在函数调用期间有效,可以参加该函数中的运算。

在调用函数过程中发生的是参与形参间的数据传递称为”虚实结合“。

我们通过一个程序来看:
输入两个整数,要求输出其中的大者。
这个之前见过。
在这里插入图片描述
在这里插入图片描述
在这两张图中,max函数的位置不一样,但结果是一样的,
在这个程序中,它的位置不影响程序运行。
但一般情况下,我们应把定义的函数放在主调函数的后面。

主函数中有一个函数调用,a和b就是实参,x和y是形参,
通过函数调用,a和b的值传递给形参x和y参与运算。
得到的z再赋值给变量c

我们需要注意:
实参可以是常量,变量或表达式,但是要求他们有确定的值。

实参和形参的类型需要相同或赋值兼容。
否则进行类型转换。
字符型和int型可以通用。

函数调用的过程

1.在定义函数中指定的形参,在未出现函数调用时,它们并不占用内存中的存储单元。
在发生函数调用时,函数max的形参才被分配到临时单元。
2.将实参的值传递给对应形参。
3.在执行max函数期间,由于形参已经有值,就可以利用形参进行相关的运算。
4.通过return语句将函数值带回到主调函数。
如果函数不需要返回值,则不需要return语句。这时函数的类型应定义为void类型。
5.调用结束,形参单元被释放。
实参单元仍保留并维持原值,没有改变。
如果在执行一个被调用函数时,形参的值发生改变,不会改变主调函数的实参的值。
这是因为实参和形参处于不同的存储单元。

实参向形参的数据传递是”值传递“,单向传递,只能由实参传给形参。

函数的返回值

1.函数的返回值是通过函数中的return语句获得的。
return语句将被调用函数中的一个确定值带回到主调函数中去。
如果需要从被调用函数待会一个函数值(供主调函数使用),
被调用函数必须包含return语句。

一个函数中可以有一个以上的return语句,执行到哪一个return语句哪一个return语句就起作用。
return语句后面的括号可以不要。
return后面的值可以是一个表达式。
如:
max(int x,int y)
{
return(x>y?x:y);
}

2.函数值的类型
我们需要在定义函数时指定函数的类型。

3.在定义函数时指定的函数类型一般应该和return语句中的表达式类型一致。
如果函数的类型和return语句中的表达式的值不一致,则以函数类型为准。
对数值型数据,可以自动进行类型转换。
即函数类型决定返回值的类型。
4.对于不带回值的函数,应当用定义函数为”void类型(空类型)“
这样,系统就保证不使函数带回任何值,即禁止在调用函数中使用被调用函数的返回值。
此时在函数中不得使用return语句。

本篇内容到此结束。


http://chatgpt.dhexx.cn/article/Bn6iN5ph.shtml

相关文章

函数的调用

接着 https://blog.csdn.net/jcf52/article/details/123213269https://blog.csdn.net/jcf52/article/details/123221654 来到了函数进阶: 一.间接调用函数 1.调用函数有直接使用函数名加参数列表的的形式调用,测量这种方式,还可以使用将…

C语言——如何调用函数

C语言——如何调用函数 一、案例: 二、函数的认知 #include <stdio.h> #include <stdlib.h>int prepare() {printf("出门前准备\n");printf("洗漱\n");printf("穿衣\n");return 0; }int onTheRoad() {printf("在路上\n…

3+1活动:结交一个朋友、参与一项运动 、培养一个兴趣爱好 、阅读一本好书

做一个热爱生活的人从31开始 结交一个朋友、参与一项运动 、培养一个兴趣爱好 、阅读一本好书 结交一个朋友 参与一项运动 培养一个兴趣爱好 阅读一本好书

Nature综述:培养未被培养微生物的创新方法

对于培养未被培养的大多数微生物的创新 Innovations to culturing the uncultured microbial majority Nature Reviews Microbiology [IF: 60.633] DOI&#xff1a;https://doi.org/10.1038/s41579-020-00458-8 发表日期&#xff1a;2020-10-22 第一作者&#xff1a;William H.…

自学系列 | 就谈兴趣!

最近接到很多读者的私信&#xff0c;基本都是有关方向的选择上以及如何自学上&#xff0c;还有部分读者问到有关前端的方向&#xff0c;能不能详细写写如果从零学习&#xff0c;能够达到找工作的标准。而且这个自学能力是我们一辈子的生存技能&#xff0c;无论干什么&#xff0…

Nature综述:未培养微生物的新兴培养技术

摘要 尽管近年来微生物基因组数据激增&#xff0c;但通过基于培养的实验对于证实细胞生物学、生态作用和微生物进化的推论仍然十分重要。目前绝大多数古菌和细菌仍难以培养且对其特性了解不够充分&#xff0c;因此研究者们对高效的培养学方法愈加重视&#xff0c;这也加快了许多…

火爆全网,495页《看漫画学Python》全彩PDF免费分享,入门编程培养兴趣首选

在当下全民互联网&#xff0c;大数据的时代&#xff0c;Python已然成为了学习大数据、人工智能时代的首选编程语言&#xff0c;Python因上手简单被越来越多的人所喜爱&#xff0c;近几年更是在各类语言使用排行榜中稳居第一&#xff0c;而且每年是用人数还在直线上升。 但是对…

团队管理21--梯队培养

本文来谈一下我对梯队培养的理解&#xff0c;希望对大家有启发。 梯队培养是我们在团队管理中经常遇到的难题之一&#xff0c;很多管理者都是因为梯队培养不到位而导致团队漏洞百出&#xff0c;工作大受影响。我们建梯队最主要的目的是提高整个团队的战斗力和抵抗力。所谓战斗…

[ 和你一起终身学习]---家长也是需要学习,需要成长的

[ 和你一起终身学习]---家长也是需要学习,需要成长的 一,序言 每一个的成长过程中,都需要不断的学习,更新自己的大脑,就行常用的软件需要不断的更新版本一下,孩子需要在成长的过程中,不断的认识世界,但是作为父母亲,也是要不断的学习,提升认知的. 下面是一孩子家长会后记录的总…

计算机兴趣班学什么好处,电脑兴趣班教学工作计划

电脑兴趣班教学工作计划 信息技术是一门讲究操作性和实践性的课程&#xff0c;六年级信息技术教学应注重培养孩子的动手操作实践能力&#xff0c;达到手脑并用&#xff0c;同步发展。那么具体的教学工作计划怎么制定呢&#xff1f;下面是小编带来关于电脑兴趣班教学工作计划&am…

学习Python想放弃,因为你没有培养自己的兴趣!

大家好&#xff0c;我是菜鸟哥&#xff01; 周末啦&#xff0c;跟大家聊一下我们粉丝团的情况。最近陆陆续续很多粉丝加我的微信&#xff0c;咨询一些学习的问题: 有的问&#xff0c;我已经35岁了&#xff0c;开始学Python编程还来的及吗&#xff1f;有的问&#xff0c;我买了很…

刨根问底(一):从INode客户端看如何培养兴趣

强烈推荐一个大神的人工智能的教程&#xff1a;http://www.captainai.net/zhanghan 前言&#xff1a; 好消息&#xff1a;本人姓张&#xff0c;名小二&#xff0c;性别男&#xff0c;今天正式开通刨根问底系列&#xff0c;望大家以后多多关照。 关于兴趣这个东东在网络天地系列…

刨根问底(二):从INode客户端看如何培养兴趣 (续)

强烈推荐一个大神的人工智能的教程&#xff1a;http://www.captainai.net/zhanghan 背景&#xff1a; 自从4月22号撰写了——《刨根问底&#xff1a;从INode客户端看如何培养兴趣》到今天过去三个月多了&#xff01;无论是评论&#xff0c;邮件还是当面交流&#xff0c;好多人…

VS2015性能分析过程

原文转载于:https://blog.csdn.net/luoweifu/article/details/51470998 上一篇文章带你玩转Visual Studio——VC的多线程开发讲了VC中多线程的主要用法。多线程是提升性能和解决并发问题的有效途经。在商用程序的开发中&#xff0c;性能是一个重要的指标&#xff0c;程序的性能…

吉林大学数据库系统概念2015年期末试题自做答案

简答题 1数据库中常用的完整性约束包括哪些&#xff1f; 答&#xff1a;not null unique check primary key foreign key 2简述数据库系统与文件系统的主要区别。 答&#xff1a;参考课本19页1.8 这两个系统都包含了数据集合和一组程序。数据库协调数据的物理和逻辑访…

2015年CSDN博客排名第一名,何方神圣?

2015年CSDN博客排名第一名&#xff0c;何方神圣&#xff1f; 一、引子&#xff1a; 话说博主phphot&#xff0c;雄霸天下好多年。 俱往矣&#xff0c; 落花流水春去也。 斗转星移&#xff0c;江山易主。 详细可以参见下文&#xff1a; CSDN博客排名第一名&#xff0c;何许人也 …

【转】85张PPT湖南2015年IPTV业务运营数据报告

导语 2015年&#xff0c;湖南IPTV以强势的芒果内容战略,精致的平台运营策略&#xff0c;流畅的技术产品体验&#xff0c;亲切的品牌市场形象&#xff0c;走进了248万个湖南家庭&#xff0c;全年收视次数高达42亿! 直播、回看、点播、综艺、影视、少儿&#xff0c;全屏加速&am…

传智播客 刘意_2015年Java基础视频-深入浅出精华版 笔记(2015年10月25日23:28:50)

day01 win 7系统打开DOS有趣方法&#xff1a;按住shift右键&#xff0c;单击“在此处打开命令窗口”(注意&#xff1a;在此处可以是任何的文件夹&#xff0c;不一定是桌面) 用DOS删除的文件不可以在回收站恢复&#xff1f;&#xff01;&#xff01; 常用DOS命令 d: 回车 盘符切…

2015 2020 r4烧录卡 区别_【2015年和2020年上半年市场资金结构有何差异?】东北证券金融工程择时周报20200802...

0摘要 观点综述&#xff1a;2017年以来公募基金摒弃了以往广撒网的方式&#xff0c;反而开始抱团&#xff0c;虽然基金发行、股票发行的数量增加&#xff0c;但是公募基金十大重仓股的个数却是不断降低的。这也就和我们当前的存量市场格局所呼应。在没有新增资金的存量格局之下…

VS2015+Qt5.8 联合配置

&#xff08;第一种&#xff09;VS2015Qt5.8 x86环境搭建 2018年10月16日 18:59:32 废柴Panda_M 阅读数&#xff1a;166 最近用一套别人的代码&#xff0c;发现库都是各种32位的&#xff0c;于是卸载了我辛辛苦苦下载的VS 2017和Qt5.9&#xff0c;重新弄。对应2017版本的Qt似…