函数的讲解

一、函数的概念

C语言的程序其实是由无数个小的函数组合而成的,可以说一个大的计算任务可以分解成若干个较小的函数。

C语言中我们一般会见到两类函数:

  • 库函数
  • 自定义函数

二、库函数

C语言国际标准ANSIC规定了一些常用函数的标准,被称为标准库,这些函数被称为库函数。

库函数文档的一般格式

  1. 函数原型
  2. 函数功能介绍
  3. 参数和返回类型说明
  4. 代码举例
  5. 代码输出
  6. 相关知识链接

三、自定义函数

1.函数的语法形式

ret_type fun_name(形式参数)
{

}
  • ret_type是函数返回类型
  • fun_name是函数名
  • 括号中放的是形式参数
  • ret_type是用来表示函数计算结果的类型,有时候返回的是void,表示不返回
  • fun_name是为了方便函数
  • 函数参数就相当于,工厂中送进去原材料,函数的参数也可以是void,明确表示函数没有参数。如果有参数,要交代清楚参数的类型和名字,以及参数个数。
  • {}括起来的部分被称为函数体,函数体就是完成计算的过程。

四、形参和实参

#include"stdio.h"
int add(intx,inty)
{
    int z=0;
    z=x+y;
    return z
}

int main()
{
    int a=0;
    int b=0;
    //输入
    scanf("%d",&a,&b);
    //调用加法函数,完成a和b的相加
    //求和的结果放在r中
    int r=add(a,b);
    //输出
    printf("%d",r);
    return 0;
}

1.实参

在上面代码中,2·7行是add函数的定义,有了函数后在第17行调用add函数。

我们把第17行调用add函数时,传递函数的参数a和b,称为实际参数,简称实参。

实际参数就是展示传递给函数的参数。

2.形参

在上面代码中,第二行定义函数的时候,在函数名add后括号写的x和y,称为形式参数,简称形参。

3.实参和形参的关系

我们可以理解为:形参是实参的一份临时拷贝。

五、return语句

  • return后面可以是一个数值也可以是一个表达式,如果是表达式则先执行表达式,再返回表达式的结果
  • return后面也可以什么都没有,直接写return;这种写法适合函数返回类型是void的情况
  • return返回的值和函数返回类型不一致,系统会自动将返回的值隐试转换为函数的返回值
  • return语句执行后,函数就彻底返回,后面的代码不再执行
  • 如果函数中存在if等分支语句,则要保证每种情况下都有return返回,否则就会出现编译错误

六、数组做函数参数

数组传参的重要知识:

  • 函数的形式参数要和函数的实参个数匹配
  • 函数的实参是数组,形参也可以写成数组的形式
  • 形参如果是一维数组,数组大小可以省略不写
  • 形参如果是二维数组,行可以省略,但是列不能省略
  • 数组传参,形参是不会创建新的数组的
  • 形参操作的数组和实参的数组是同一个数组

例:

8caf2958abdd451ab3459e265835a869.png

 七、嵌套调用和链式访问

1.嵌套调用

嵌套调用就是函数之间的互相调用

假设我们要计算某年某月有多少天:

  • year( ):根据年份确定是否是闰年
  • Day( ):调用year( )确定是否闰年后,再根据月计算这个月的天数

b31aaf3f9ad24938896b705c67ccaed0.png

 这个函数代码中,main函数中调用了day函数,day函数中调用了year函数从而实现了嵌套。

2.链式访问

链式访问就是将一个函数的返回值作为另外一个函数的参数,像链条一样将函数串起来就是函数的链式访问

5680790dd6b24187ba8f4e36996c3074.png

上面的代码上第一个printf打印的是第二个printf的返回值,第二个printf打印的是第三个printf的值

第三个printf打印的是43,在屏幕上打印两个字符,再返回2

第二个printf打印的是2,在屏幕上打印一个字符,再返回1

第一个printf打印1

所以屏幕上最终打印的是4321 

  • 33
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值