[编程神域 C语言浮游塔 第④期] 函数的基本知识


 前言

通过上一期的学习,我们知晓了数组及其不同的使用方法。

本期学习的是C语言中的函数,可类比为java中的方法。

函数是构成C程序的基本单元,可以说C程序通常由若干函数组成,它包括函数头和函数体。

它是一个个能够独立完成某种功能的程序块,每个都有各自的独立性,其中封装了程序代码和数据,实现了更高级的抽象和数据隐藏,这样看起来它的内涵似乎比较复杂。

但在实际运用过程中,我们并不需要去了解这些具体细节,只要知道它的功能和用法即可。

本期将重点讨论包括函数的定义、调用、参数与返回值等。

下面,就让我们开始学习函数吧。

Link Start!

目录

浮游塔第31层:C程序的函数构成及定义

浮游塔第32层:函数的分类

浮游塔第33层:函数的调用

浮游塔第34层:函数的嵌套调用和递归调用

浮游塔第35层:函数的声明

浮游塔第36层:数组元素作为函数参数

浮游塔第37层:数组名作为函数参数

浮游塔第38层:变量的作用域

浮游塔第39层:函数的作用域

浮游塔第40层:结构化程序设计


浮游塔第31层:C程序的函数构成及定义

一个 C 程序由一个主函数(main 函数)与多个子函数构成。

其中,主函数 main( )  可以调用任何函数,各函数之间也可以相互调用,但是一般函数不能调用主函数

所有函数都是平行独立的,不能嵌套定义。

若已定义的函数由有返回值,则函数调用可以作为独立的语句存在,可以作为一个函数的实行参数,也可以出现在表达式中,但不可以作为一个函数的形式参数。

函数可以接受用户传递的数据,

在接收用户数据的函数在定义时要指明参数,

不接收用户数据的不需要指明,根据这一点可以将函数分为有参函数无参函数

在学习函数时,要弄清楚两个概念,实际参数(实参)与形式参数(形参)。

形式参数必须是变量,但实际参数可以时常量、变量或表达式,

且实际参数的个数和类型要与对应的形式参数一致,各参数之间用逗号隔开。

根据函数是否接受数据的不同,其定义形式自然也不同。

无参函数的定义

类型说明符 函数名()
{
    函数体;
}
如:
void speak()
{
    printf("hello world!");
}

有参函数的定义

类型说明符 函数名(参数列表)
{
    函数体;
}
如:
int  sum(int a,int b)
{
    int sum;
    sum=a+b;
    return sum;
}

在“形式参数表列”中给出的参数称为形式参数,它们可以是各种类型的变量,同时要对这些变量给予类型说明,各参数之间用逗号间隔。

在进行函数调用时,主调函数将赋予这些形式参数实际的值。


浮游塔第32层:函数的分类

按照定义分

①库函数:

       库函数又称为标准函数,由c系统提供,无需程序员定义,可直接使用,但需要在程序开头包含原型声明的头文件。

(1)I/O 函数:

          例如: getchar,putchar,printf,scanf,fopen,fclose等。

(2)字符串和字符函数:

          例如:isalnum,isalph,strcat,strchr,strcmp,strcpy,strlen,strstr等。

(3)数学函数:

          例如:sin,cos,exp(e的x次方),log,sqrt(开平方),pow(x的y次方)等。

(4)时间、日期和与系统有关的函数:

          例如:time返回系统的时间;asctime返回以字符串形式表示的日期和时间。

(5)动态分配分配:包括"申请分配"和"释放"内存空间的函数。

          例如:calloc,free,malloc,realloc等。

(6)目录管理:包括磁盘目录建立、查询、改变等操作的函数。

(7)过程控制:包括最基本的过程控制函数。

(8)字符屏幕和图形功能:包括各种绘制点、线、圆、方和填色等的函数。

(9)其它函数。

②自定义函数
       由程序员根据自己的需求编写,自定义函数不仅要在程序中定义函数本身,必须还要在主函数中调用该函数。

按照有无返回值函数

①有返回值函数:
       该类函数被调用执行完毕,将向调用者返回一个执行结果,称为函数的返回值

②无返回值函数:

       无返回值函数不需要向主调函数提供返回值

按照函数形式分类

①无参函数:

       在函数的声明、定义和调用中均不带参数,特点:在调用无参函数主调函数并不将数据传输给被调用函数,此类函数通常被用来完成指定的功能,可以返回或不返回函数值。

②有参函数:

       在函数定义、声明都都有参数。特点:主调函数调用被调函数时,主调函数必须把值传输给形参,以供被调函数使用。


浮游塔第33层:函数的调用

&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渡过晚枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值