C语言函数的调用

article/2025/9/1 14:50:40

函数调用(Function Call),就是使用已经定义好的函数。函数调用的一般形式为:

functionName(param1, param2, param3 ...);

functionName 是函数名称,param1, param2, param3 …是实参列表。实参可以是常数、变量、表达式等,多个实参用逗号,分隔。
在C语言中,函数调用的方式有多种,例如:

//函数作为表达式中的一项出现在表达式中
z = max(x, y);
m = n + max(x, y);
//函数作为一个单独的语句
printf("%d", a);
scanf("%d", &b);
//函数作为调用另一个函数时的实参
printf( "%d", max(x, y) );
total( max(x, y), min(m, n) );

函数的嵌套调用
函数不能嵌套定义,但可以嵌套调用,也就是在一个函数的定义或调用过程中允许出现对另外一个函数的调用。

【示例】计算sum = 1! + 2! + 3! + … + (n-1)! + n!

分析:可以编写两个函数,一个用来计算阶乘,一个用来计算累加的和。

#include <stdio.h>
//求阶乘
long factorial(int n)
{int i;long result = 1;for(i=1; i<n; i++){result *= i; }return result;} 
//求累加的和
long sum(long n)
{int i;long result = 0;for(i=1; i<=n; i++){//在定义过程中出现嵌套调用 result += factorial(i); }return result;} int main()
{printf("1!+2!+...+9!+10!=%ld\n", sum(10));return 0;
}

sum() 的定义中出现了对 factorial() 的调用,printf() 的调用过程中出现了对 sum() 的调用,而 printf() 又被 main() 调用,它们整体调用关系为:

main() --> printf() --> sum() --> factorial()

在这里插入图片描述
如果一个函数 A() 在定义或调用过程中出现了对另外一个函数 B() 的调用,那么我们就称 A() 为主调函数或主函数,称 B() 为被调函数。

当主调函数遇到被调函数时,主调函数会暂停,CPU 转而执行被调函数的代码;被调函数执行完毕后再返回主调函数,主调函数根据刚才的状态继续往下执行。

一个C语言程序的执行过程可以认为是多个函数之间的相互调用过程,它们形成了一个或简单或复杂的调用链条。这个链条的起点是 main(),终点也是 main()。当 main() 调用完了所有的函数,它会返回一个值(例如return 0;)来结束自己的生命,从而结束整个程序。


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

相关文章

Windows编程-001

如果建立的是Win32控制台工程&#xff08;入口函数是main函数&#xff09;的话&#xff0c;WinMain函数不能作为入口函数&#xff0c;如果想要解决这个问题的话&#xff0c;可以打开项目属性->链接器->系统->子系统&#xff0c;把子系统对应的“控制台”改为“窗口”。…

windows全系1

windows操作系统专贴(一定有你想要的) 2006年12月01日 22:25 windows 98 简体中文零售版第三版 语言&#xff1a;简体中文 类型&#xff1a;操作系统 大小&#xff1a;180MB 环境&#xff1a;9x/Me/NT/2000/XP/.Net/ 授权&#xff1a;零售版 软件介绍:这个版本是SE的改进版,比前…

对不起,说句粗话——这个太屌了,windows1.0安装程序(附下载)

今天逛一个软件论坛发现的&#xff0c;只有几百K。遥想当今我刚接触windows的版本是3.1&#xff0c;当时记得很清楚哦&#xff0c;进入windows要从dos命令行进入。现在一转眼&#xff0c;变成进入伪dos是运行栏里敲cmd了。 唉&#xff0c;想当年尿尿还能疵2米多远的时候&#…

Windows入门(一)

本人正在学习Windows编程操作&#xff0c;所以进行一些记录&#xff0c;希望对刚入门的个位有所帮助。 目录 1.什么是win32编程 2. 一个简单的win32程序 2.1 创建一个空项目 2.2 入口函数 2.3 注册窗口 2.3.1 窗口回调函数 2.4 创建窗口 2.5 显示窗口 2.6 更新窗口 3.…

win11网页版

网页版地址 点它 https://win11.blueedge.me/ 其github库地址其github库地址https://github.com/blueedgetechno/win11React/

windows10/11子系统安装ubuntu22.04

学习目标&#xff1a; winfows10/11 安装wsl内核 基于wsl内核安装Ubuntu系统 基于ubuntu系统安装docker环境 学习内容&#xff1a; 系统下安装wsl2下载ubuntu安装包windows11 安装ubuntu 22.04系统ubuntu 22.04 安装dockerdocker 启动、测试 windows下安装wsl2内核 1、如果未…

快速教你在虚拟机上完美安装Windows1.0

想必不用我说大家用虚拟机安装Windows1.0时都是这样的: 今天我就来教大家如何正确安装Windows1.0 因为在1985年(Windows1.0诞生的年代)的鼠标驱动已经不匹配我们的电脑了,所以我们需要先解决鼠标这个问题。 第一步: 打开UltraISO,在里面打开我们Windows1.0第一个镜像(…

Windows:

服务主机:本地系统(网络受限) CPU利用率高&#xff0c;磁盘利用率高 解决方法&#xff1a; 方法一&#xff1a;禁用SuperFetch服务 计算机&#xff1a;—右键“管理”—SuperFetch—停止。或属性—-禁用。 开机就占用50%的内存&#xff08;共8G&#xff09; 关闭家庭组  家…

Windows1.0到Windows10三十年进化史,你还记得自己最初使用的系统吗?

从1985年Windows 1.0正式诞生到2015年Windows 10诞生&#xff0c;微软花了三十年的时间&#xff0c;从像素化桌面到现在扁平化的界面。让我们来看一下Windows 1.0到Windows10三十年来的变化。 1、1985年11月20日&#xff0c;微软发布了第一版的Windows操作系统——Windows1.0。…

【Docker】 Windows10运行Windows镜像时常见错误

项目场景:【Docker】 Windows10运行Windows镜像常见错误 很多项目要求在Windows系统下运行,但开发环境的安装相对复杂,并且难以重新配置到新设备,甚至会出现多个项目的运行环境相互冲突和干扰的情况,这时候配置好一个镜像后就可以一劳永逸解决很多问题,直接用docker拉取Window…

Windows 1.0

Windows 1.0 是微软于1985年11月发布的第一款基于dos的pc图形操作平台.要安装Windows 1.0 先安装好ms-dos2.11.对于ms-dos3以上的,只能看见一个类似资源管理器的程序.因为现在很找到一个很破旧的电脑,所以只能通过虚拟机来实现.推荐使用VMware虚拟机.先进入dos2.11,如下图所示 …

重温经典:Windows1.0系统体验和尝试自己编写Windows1.0系统

相关说明 如果你觉得文章含有侵权部分&#xff0c;可以联系CSDN私聊&#xff0c;我会适当修改。 未经允许&#xff0c;不得转载&#xff0c;如需转载&#xff0c;请CSDN私聊。 Windows Windows&#xff0c;意思是窗口&#xff0c;窗户。当然&#xff0c;他也是一个操作系统的…

[笔记]深入解析Windows操作系统《一》概念和工具

文章目录 前言1.1 Windows操作系统的版本1.2 基础概念和术语Windows API关于 .NetWin32 API 历史服务、函数、例程进程、线程和作业进程tlist /t 查看进程树任务管理查看进程Process Explorer查看进程的细节 线程纤程与用户模式调度器线程 虚拟内存内核模式和用户模式终端服务及…

Windows操作系统各版本的历史 Windows系统历史版本简介

30年间Windows系统有哪些版本&#xff1f;还记得你第一次了解到Windows操作系统存在的时候是哪一年吗&#xff1f;这些操作系统又有哪些特点呢&#xff1f;隐约知道计算机变得越来越小了吗……现在笔者将通过收集的资料&#xff0c;为各位细细解说曾经的操作系统。 30年间Wind…

[字符串]ASCII码表

数字&#xff0c;字母位置 数字0~9对应的ASCII码&#xff08;十进制&#xff09;袭为“48”~“57”大写字母A~Z对应的ASCII码&#xff08;十进制&#xff09;为“65”~“90”小写字母a~z对应的百ASCII码&#xff08;十进制&#xff09;为"97"~“122”表

ASCII 码不同的两种空格:32 和160

背景 在 Linux 下手写一个命令和拷贝 html 页面文本域中的命令执行结果完全不同&#xff0c;后者的命令无法被 Linux 识别。 问题截图 肉眼根本看不出来这两行有什么区别&#xff0c;但执行结果就是有问题。 问题定位 编写测试代码&#xff0c;执行两个字符串的 equals 方法…

ASCII码作用简介

《Linux下的^M困惑》曾提到\r对应的ASCII码十进制形式是13(无显示形式)&#xff0c;对应的八进制形式是15(显示为^M)&#xff0c;有朋友在后台反馈对ASCII码有些疑惑&#xff0c;因此在这&#xff0c;简单介绍下ASCII。 ASCII&#xff0c;英文全称是American Standard Code for…

什么是ASCII码?

ASCII 表 分类 编程技术 ASCII&#xff08;发音&#xff1a;&#xff0c;American Standard Code for Information Interchange&#xff0c;美国信息交换标准代码&#xff09;是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语&#xff0c;而其扩展版本延伸美国标准信…

ASCII码对照表(嘤嘤怪自用)

软件Visual Studio 2022 C语言 ASCII码中 字母的ASCII码大小&#xff1a; “A”为65&#xff1b;“a”为97&#xff1b;“0”为 48 同个字母的大写字母比小写字母要小32 因此字母的大小转换可以加减32实现 ASCII码 1. 数字表达字母 源代码 #include <stdio.h…

字符串 ASCII码

ASCII码、 汉字也可以表示。有7745个 字形码