广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言函数调用基础应用详解
  • 893
分享到

C语言函数调用基础应用详解

C语言函数调用方式C语言函数调用事例 2023-02-11 12:02:36 893人浏览 独家记忆
摘要

所谓函数调用(Function Call),就是使用已经定义好的函数。函数调用的一般形式为: functionName(param1, param2, param3 ...); fu

所谓函数调用(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>
//求阶乘
longfactorial(int n){
int i;
long result=1;
for(i=1; i<=n; i++){
        result *= i;
}
return result;
}
// 求累加的和
longsum(long n){
int i;
long result =0;
for(i=1; i<=n; i++){
//在定义过程中出现嵌套调用
        result +=factorial(i);
}
return result;
}
intmain(){
printf("1!+2!+...+9!+10! = %ld\n",sum(10));//在调用过程中出现嵌套调用
return0;
}

运行结果:

1!+2!+...+9!+10! = 4037913

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

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

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

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

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

函数是一个可以重复使用的代码块,CPU 会一条一条地挨着执行其中的代码,当遇到函数调用时,CPU 首先要记录下当前代码块中下一条代码的地址(假设地址为 0X1000),然后跳转到另外一个代码块,执行完毕后再回来继续执行 0X1000 处的代码。整个过程相当于 CPU 开了一个小差,暂时放下手中的工作去做点别的事情,做完了再继续刚才的工作。

从上面的分析可以推断出,在所有函数之外进行加减乘除运算、使用 if...else 语句、调用一个函数等都是没有意义的,这些代码位于整个函数调用链条之外,永远都不会被执行到。C语言也禁止出现这种情况,会报语法错误,请看下面的代码:

#include<stdio.h>
int a =10, b =20, c;
//错误:不能出现加减乘除运算
c = a + b;
//错误:不能出现对其他函数的调用
printf("csdn.net");
intmain(){
return0;
}

到此这篇关于C语言函数调用基础应用详解的文章就介绍到这了,更多相关C语言函数调用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C语言函数调用基础应用详解

本文链接: https://www.lsjlt.com/news/195647.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言函数调用基础应用详解
    所谓函数调用(Function Call),就是使用已经定义好的函数。函数调用的一般形式为: functionName(param1, param2, param3 ...); fu...
    99+
    2023-02-11
    C语言函数调用方式 C语言函数调用事例
  • C语言map函数的基础用法详解
    目录mapmap具体操作总结map 有N个学生的姓名name和学号ID,要求给你一个学生的name求查找他的ID。 简单做法是定义 string name [ N ] 和 int I...
    99+
    2022-11-12
  • C语言基础函数用法示例详细解析
    目录函数函数定义函数一般格式C语言函数分类库函数库函数的分类库函数的学习自定义函数函数的参数实际参数形式参数函数的调用传值调用传址调用无参函数调用函数的声明和定义函数的声明函数的定义...
    99+
    2022-11-12
  • C语言基础 strlen 函数
    目录一.strlen 函数简介二.strlen 函数实战一.strlen 函数简介 在C 语言中,char 字符串也是一种非常重要的数据类型,我们可以使用 strlen 函数获取字符...
    99+
    2022-11-12
  • C 语言回调函数详解
    回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。1. 什么是回调函数?...
    99+
    2023-06-03
  • C语言函数基础教程分类自定义参数及调用示例详解
    目录1.  函数是什么?2.  C语言中函数的分类2.1 库函数2.1.1 为什么要有库函数2.1.2 什么是库函数2.1.3 主函数只能是main()吗2.1.4常见的库函数2.2...
    99+
    2022-11-12
  • C语言指针基础详解
    目录1.1:概述1.1.1:内存1.1.2:内存1.1.3:指针和指针变量1.2:指针基础知识1.2.1:指针变量的定义和使用1.2.2:通过指针间接修改变量的值1.2.3:指针的大...
    99+
    2022-11-12
  • 详解C语言初阶基础
    目录1.什么是c语言2.初始化:3.变量和常量4.作用域与生命周期简单阐述:作用域:生命周期(存在与消失):作用域与生命周期的区别作用域:生命周期:5.    &...
    99+
    2022-11-12
  • Go语言基础函数基本用法及示例详解
    目录概述语法函数定义一.函数参数无参数无返回有参数有返回函数值传递函数引用传递可变参数列表 无默认参数函数作为参数二、返回值多个返回值跳过返回值匿名函数匿名函数可以赋值给一个变量为函...
    99+
    2022-11-12
  • C语言详解字符串基础
    目录一、字符串的概念二、字符数组与字符串三、字符串字面量的秘密四、字符串的长度五、小结一、字符串的概念 字符串是有序字符的集合 字符串是程序中的基本元素之一 C 语言中没有字符串的概...
    99+
    2022-11-13
  • 详解C语言初阶基础(2)
    目录1.选择语句(if)2.循环while循环for循环do-while循环补充总结1.选择语句(if) 我们先不讲switch,后面会补充。先来对简单地if进行了解。 我们已经知道...
    99+
    2022-11-12
  • C语言中回调函数和qsort函数的用法详解
    目录回调函数指向函数指针数组的指针qsort(qulick sort)-库函数回调函数 通过函数指针调用的函数,如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调...
    99+
    2022-11-13
  • C语言基础指针详解教程
    目录1.1:概述1.1.1:内存1.1.2:内存1.1.3:指针和指针变量1.2:指针基础知识1.2.1:指针变量的定义和使用1.2.2:通过指针间接修改变量的值1.2.3:指针的大...
    99+
    2022-11-12
  • C语言函数的递归调用详情
    目录一、什么是递归二、递归与迭代一、什么是递归 程序调用自身的编程技巧称为递归( recursion) 。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直...
    99+
    2022-11-13
  • C语言函数的基本使用和递归详解
    目录本章目标函数是什么C语言中函数的分类库函数如何学会使用库函数?自定义函数函数的参数函数的调用:函数的嵌套调用和链式访问嵌套调用链式访问函数的声明和定义函数递归什么是递归?递归的两...
    99+
    2022-11-12
  • C语言中map函数的基础用法是什么
    C语言中map函数的基础用法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。map有N个学生的姓名name和学号ID,要求给你一个学生的name求查找他的I...
    99+
    2023-06-22
  • C语言入门之基础知识详解
    目录一、思维导图二、环境搭建三、编码规范四、基本数据类型五、分支循环5.1 分支5.2 循环六、break与continue6.1 无限循环一、思维导图 内容不限于此思维导图 二、...
    99+
    2022-11-12
  • C语言MFC基础之计算器详解
    目录基于MFC计算器(基础点)需求:把计算器运算的过程呈现出来。基础点总结基于MFC计算器(基础点) 主要是在实现MFC计算器的过程中碰到的一些问题,和补充的一些知识。 需求:把计算...
    99+
    2022-11-12
  • 零基础详解C语言指针进阶
    目录前言1.字符指针例题 12.指针数组例题 23.数组指针3.1数组指针的定义3.2 &数组名与数组名3.3 数组指针的使用4.数组与指针在函数里的传参4.1 一维数组的传...
    99+
    2022-11-13
  • C语言操作符基础知识详解
    目录一.单目操作符:二.关系操作符三.条件操作符四.逗号表达式五.逻辑操作符总结一.单目操作符: !:逻辑反操作符; -:负数操作符; +:整数操作符; &:取地址操作符; ...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作