Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C语言函数的定义与调用-学习十六

C语言函数的定义与调用-学习十六

作者头像
XG.孤梦
发布于 2022-03-01 05:51:53
发布于 2022-03-01 05:51:53
1.1K00
代码可运行
举报
文章被收录于专栏:日志随记日志随记
运行总次数:0
代码可运行

本文最后更新于2022年02月11日,已超过17天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

为什么要用函数?

  • 问题
    • 如果程序的功能比较多,规模比较大把所有代码都写在main函数中, 就会使主函数变得复杂、头绪不清,阅读和维护变得困难。
    • 有时程序中要多次实现某一功能,就要多次重复编写实现此功能的程序代码,这使程序冗长,不精炼。
  • 解决的方法:用模块化程序设计的思路
    • 采里“组装”的办法简化程序设计的过程。
    • 事先编好一批实现各种不同功能的函数
    • 把它们保存在函数库中;需要时直接调用
  • 在设计一个较大的程序时,往往把它分为若干个程序模块,每一个模块包括一个或多个函数,每个函数实现一个特定的功能
  • C程序可由一个主函数若干个其他函数构成。
  • 函数还有很多叫法,比如方法、子例程或程序,等等。
  • 例子

直接写在主函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

int main() {
    printf("************\n");
    printf("Hello Word!\n");
    printf("************\n");

    return 0;
}

调用函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

int main() {
    void printf_star(); //声明函数
    void printf_text(); //声明函数

    printf_star();  //函数调用
    printf_text();
    printf_star();
    return 0;
}

void printf_star() {
    printf("************\n");
}

void printf_text() {
    printf("Hello Word!\n");
}
说明
  • 1.一个C程序由一个或多个程序模块组成,每一个程序模块作为一个源程序文件
    • 对较大的程序,一般不希望把所有内容全放在一个文件中,而是将它们分别放在若干个源文件中,由若干个源程序文件组成一个C程序
    • 这样便于分别编写、分别编译,提高调试效率。
    • 一个源程序文件可以为多个C程序共用。
  • 2.一个源程序文件由一个或多个函数以及其他有关内容(如预处理指令、数据声明与定义等)组成。
    • 一个源程序文件是一个编译单位,在程序编译时是以源程序文件为单位进行编译的,而不是以函数为单位进行编译的。
  • 3.C程序的执行是从main函数开始的,如果在main函数中调用其他函数,在调用后流程返回到main函数在main函数中结束整个程序的运行
  • 4.所有函数都是平行的,即在定义函数时是分别进行的,是互相独立的
    • 一个函数并不从属于另一个函数,即函数不能嵌套定义
    • 函数间可以互相调用,但不能调用main函数
    • main函数是被操作系统调用的
  • 5.从用户使用的角度看,函数有两种。
    • 库函数。它是由系统提供的,用户不必自己定义而直接使用它们。 应该说明,不同的C语言编译系统提供的库函数的数量和功能会有一些不同,当然许多基本的函数是共同的。
    • 用户自己定义的函数。它是用以解决用户专门需要的函数。
  • 6.从函数的形式看,函数分两类。
    • 无参函数。无参函数- -般用来执行指定的一组操作。 无参函数可以带回或不带回函数值,但一般以不带回函数值的居多。
      • int max()
    • 有参函数。在调用函数时,主调函数在调用被调用函数时,通过叁数向被调用函数传递数据。 一般情况下,执行被调用函数时会得到一个函数值,供主调函数使用。
      • int max(int a,int b)

函数的定义

  • 无参函数的定义形式:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
类型标识符 函数名()
{
     声明部分
        语句
}

// 例如

void printf_star()  // 函数头
   {  printf("************\n"); }  // 函数体
  • 有参函数定义的一般形式:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
类型标识符 函数名(形式参数)
{
     声明部分
        语句
}

// 例如

int max(int x, inty)  // 函数头
   {                  // 函数体
     
   int z;        // 局部变量声明   
 
   if (x > y)
      z = x;
   else
      z = y;
 
   return z; 
    }  
  • 定义空函数 定义空函数的一般形式为:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
类型标识符 函数名()
    {   }

// 例如

void star()  // 函数头
   {   }  // 函数体
  • 先用空函数占一个位置,以后逐步扩充
    • 好处:程序结构清楚,可读性好,以后扩充新功能方便,对程序结构影响不大。
例子

编写一个求阶乘的函数,求5! +6! +7!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

main() {
    int factorial(int num);
    printf("总和为:%d\n", factorial(5) + factorial(6) + factorial(6));
}

int factorial(int num) {
    int sum = 1;
    for (int i = 1; i <= num; i++) {
        sum = sum * i;
    }
    return sum;
}

求两个整数的较大者

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

main() {
    int a,b;
    printf("请输入两个整数:\n");
    scanf_s("%d %d", &a,&b);
    printf("结果:%d\n", max(a,b));
}

int max(int x,int y) {
    int max;
    if (x > y) { max = x; }
    else { max = y; }
    return max;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
7.1 C语言函数
1、函数是从英文function翻译过来的,其实function在英文中的意思既是函数,也是功能。、
小林C语言
2020/12/07
2K0
7.1 C语言函数
C语言入门系列之7.函数的定义、参数、调用和存储类别
一个较大的程序可分为若干个程序模块,每一个模块用来实现一个特定的功能。 在高级语言中用子程序实现模块的功能,子程序由函数来完成。 一个C程序可由一个主函数和若干个其他函数构成。
cutercorley
2020/07/23
1.8K0
C语言入门系列之7.函数的定义、参数、调用和存储类别
开讲啦:Chap 07 用函数实现模块化程序设计
在设计一个较大的程序时,往往把它分为若干个程序模块,每一个模块包含一个或多个函数,每个函数实现一个特定的功能。一个C程序可由一个主函数和若干个其他函数构成。由主函数调用其他函数,其他函数也可以互相调用,同一个函数可以被一个或多个函数调用任意多次,如图所示。
石璞东
2021/10/13
5620
c语言大一基本理解笔记1
笔记// /*所谓程序,就是一组计算机能识别和执行的指令,计算机的本质是程序的机器;计算机工作基于二进制,从根本上说,计算机只能识别和接受0和1组成的指令,这种计算机能识别和接受的二进制代码称为机器指令;机器指令的集合就是该计算机的机器语言; / /#include <stdio.h> //这是编译预处理指令int main() //定义主函数 { //主函数开始的标志 printf(“this is a Cprogram.\n”); //输入所指定的一行信息 return 0; //函数执行完毕的时返回函数值0 } / //函数结束的标志 // /**/表注释; /#include <stdio.h> //这是编译预处理指令int main() //这是编译预处理指令{ //函数开始 int a,b,sum; //程序声明部分,定义a,b,sum为整形变量 a=123; //对变量a进行赋值 b=456; //进行a加b的运算,并将结果存放在变量sum sum=a+b; //进行a+b的运算,并把结果存放在变量sum printf(“sum is %d\n”,sum) //输出结果 ,d表示用“十进制输出”, //在执行printf函数时,将sum变量的值取代双撇号中的%d return 0; //使函数返回值为 0 } */ //函数结束 /*c语言的程序结构 1一个程序由一个或多个源程序文件组成; &1.预处理指令 #include<stdio.h>,#define; 对于#include <stdio.h>来说;就是将stdio.h文件内容读取进来; 由预处理得到的结果与程序其他部分一起,组成一个完整的,可以用来编译的最后的源程序;最后由编译器正式编译,才得到目标程序 &2.全局声明 int a,b,sum; 放到main函数前面,这就是全局声明;在函数外面的声明变量叫全局变量。 如果在程序开头(定义函数之前)声明的变量,在整个源程序文件范围内有效, 在函数中声明的变量叫局部变量;只在函数范围内有效 &3.函数定义 max函数,要指定每个函数的功能。在调用这些函数时,会完成函数定义中指定的功能 2函数是c程序的主要的组成部分。&1一个c语言程序由一个或多个函数组成,必须包含一个main函数(且只能有一个main函数) &2一个小程序只包含一个源程序文件,在一个源程序文件中包含若干个函数(其中有一个main函数); 当函数规模大的时候,包含函数的数量多,放在一个文件中显的太大,不便于调试和编译, 为了方便 可以将一个源程序分为若干个源程序,若干源个程序又包含若干个函数 &3在进行编译的时是以源程序文件为对象进行的,在分别对各源程序文件进行编译并得到相应的目标程序后, 再将这些目标程序连接为一个统一的二进制的可执行编程 &4 c语言的这种特点使得容易实现程序模块化 ,在程序中调用函数可以是系统提供的函数库(printf.scanf)也可以自己设计,(max。min) 3.一个函数包括两个部分 &1函数首部。即函数的第一行,包括函数名(max),函数类型(int),函数属性(int),函数参数(形式参数)名(x.y) .参数类型(int) &2函数体。即函数首部下面的花括号内的部分。如果一个函数中包括有多层话括号,则最外层的一对花括号是函数体的范围 函数体一般包括以下部分 *1声明部分,包括定义在本函数中用到的变量,在上面例子的main函数中的定义变量“int a,b,sum”,在本函数所调用函数进行声明 *2执行部分。由若干个语句组成,指定在函数中进行的操作。 在某些情况下也可以没有声明部分;甚至可以既无声明部分也无执行部分,如。void dump(){}是一个空函数,什么也不做,但这是合法的
一个风轻云淡
2022/11/13
6790
C语言函数的调用-学习十七
本文最后更新于2022年02月11日,已超过16天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
XG.孤梦
2022/03/01
2.3K0
C语言函数的调用-学习十七
C语言函数知识点【C语言学习笔记】
1个C语言程序是由1个或多个程序模块组成,每个程序模块作为一个源文件(.c),一个源文件是由1个或多个函数组成的。函数都是平行的,相互独立的,一个函数并不属于另一个函数。
岳泽以
2022/10/26
4720
C语言学习——函数(含递归)
(1) 一个源文件由一个或者多个函数组成。 (2) 一个C程序由一个或者多个源文件组成。 (3) C程序的执行从 main 函数开始。 (4) 所有的子函数都是平行的。 (5) 从用户的角度看,函数分库函数和自定义函数。 (6) 函数形式: ①无参函数:主调函数无数据传送给被调函数,可带或不带返回值。 ②有参函数:主调函数与被调函数间有参数传递,主调函数可将实参传送给被调函数的形参, 被调函数的数据可返回主调函数。
全栈程序员站长
2022/09/23
7560
C语言学习——函数(含递归)
C语言概述-学习一
本文最后更新于2022年01月24日,已超过35天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
XG.孤梦
2022/02/28
3840
C语言概述-学习一
C语言之函数
  结构化程序设计主张按功能来分析需求,主要原则自顶向下,逐步求精,模块化等。 主张按功能把软件系统逐步细分,每个功能都负责对数据进行一次处理,每个功能接收一些数据,处理完后输出一些数据,这种处理方式也被称为面向数据流的处理方式。 其最小单位是函数,每个函数负责一个功能,整个软件系统由一个个函数组成,其中作为程序入口的函数被称为主函数。 主函数依次调用其他普通函数,普通函数之间依次调用,从而完成整个软件系统的功能。   一个C程序可由一个主函数和若干个其他函数构成,主函数调用其他函数,其他函数也可互相调用。
互联网金融打杂
2018/04/03
2.9K0
C语言之函数
开讲啦:Chap 01 程序设计和C语言
参考链接:https://www.liuchuo.net/archives/130
石璞东
2021/09/22
6790
C语言程序设计核心详解 第七章 函数和预编译命令
在进行函数调用时系统将实参值对应地(按位置次序对应)传给形参,是一种值的单向传递。
小徐在进步
2024/10/03
2570
C语言程序设计核心详解 第七章 函数和预编译命令
江哥带你玩转C语言 | 08 - C语言函数
// 1.没有返回值/没有形参 // 如果一个函数不需要返回任何数据给调用者, 那么返回值类型就是void void printRose() { printf(" {@}\n"); printf(" |\n"); printf(" \\|/\n"); // 注意: \是一个特殊的符号(转意字符), 想输出\必须写两个斜线 printf(" |\n"); // 如果函数不需要返回数据给调用者, 那么函数中的return可以不写 }
极客江南
2021/07/11
4490
全国二级C知识点总结5-函数
l C源程序是由函数组成的,函数由函数首部与函数体组成,函数体包括声明部分和执行语句部分组成。
用户6755376
2019/11/21
2.1K0
初学者c语言_怎样自学C语言
C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言教程是进入编程世界的必修课!
全栈程序员站长
2022/10/05
1.1K0
初学者c语言_怎样自学C语言
我的C语言入门笔记~!
C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。
小林C语言
2020/09/08
1.3K0
我的C语言入门笔记~!
[C语言]函数(function)
维基百科中,对函数的定义是子程序。在计算机科学中,子程序是一个大型程序中的某部分代码,由一个或多个语句块组成,它负责完成某项特定任务,而且,相较于其他代码,具备相对的独立性,C语言是由函数组成的,我们写的代码都是由主函数 main()开始执行的。函数是C语言程序段基本模块,是用于完成任务的程序代码单元。
IT编程爱好者
2023/04/12
2.3K0
[C语言]函数(function)
C语言函数嵌套与递归调用-学习十八
本文最后更新于2022年02月12日,已超过16天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
XG.孤梦
2022/03/01
1.7K0
C语言函数嵌套与递归调用-学习十八
C++函数概述 | 翻译密码
函数很重要,在开发常见的做法是把一个大的程序划为为若干个程序模块,每个模块实现一部分功能,这样做不仅可以多人来完成,也可以在单个模块中找bug。
小林C语言
2020/11/30
6470
C++函数概述 | 翻译密码
[C语言] 初始函数 & 数组
C语言的库函数在编写的时候是可以直接调用的,比如 printf 输出函数。而用户自定义函数则必须由用户对其进行定义,在其函数的定义中完成函数所特定的内容功能,这样才能被其他函数调用。
謓泽
2022/12/12
5330
[C语言] 初始函数 & 数组
C语言——函数(1)
函数事实上是从英文function翻译过来的,从英文也可以看出来函数是用来实现一定的功能的,C语⾔中的函数就是⼀个完成某项特定的任务的⼀⼩段代码,就相当于一个小的程序来实现所需要完成的功能,一个个小的程序组装在一起就可以实现总任务。⼀个⼤的计算任务可以分解成若⼲个较 ⼩的函数(对应较⼩的任务)完成。同时⼀个函数如果能完成某项特定任务的话,这个函数也是可以 复⽤的,提升了开发软件的效率。
用户11352420
2024/11/07
950
C语言——函数(1)
相关推荐
7.1 C语言函数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验