C语言从入门到精通——7.函数

前言

      一个C语言程序必不可少的是main函数,它是一个程序执行的入口,也是最后的出口!有时候我们为了实现一个多次重复使用到的功能时,我们往往选择将它写成一个独立的函数,之后再main函数中通过调用该功能函数来实现具体的功能与作用,以此来减少代码的冗余!本节将会带大家看看C语言的函数的具体内容!

模块化程序设计

模块化程序设计:将一个程序划分为若干个小模块,每个模块实现一个特定的功能。在程序运行时,如果要实现某一功能,则只需要调用相应的功能模块即可。

模块化程序的特点:

(1)程序结构清晰,容易理解与编写。

(2)减低了程序的复杂性

(3)减少了代码的冗余

(4)实现了模块的独立性

函数的分类

库函数:一些常用的库文件例如:stdio.h(标准输入输出)

自定义函数:由用户自己声明自己定义自己编写的函数模块。

无返回值函数:函数的返回值类型为“void” ,不需要返回任何的结果值。

有返回值函数:函数的返回值类型为非“void”,需要在函数的最后使用关键字“return”返回一个处理结果。例如:return a;

有参函数:函数中带有参数。

无参函数:函数中不带任何参数。

函数的具体编码格式

函数返回值类型  函数名(函数参数1,函数参数2,......,函数参数n){

          函数体;

}

函数的调用

一个自定义的函数在main函数中调用的前提是,该函数在main函数之前已经进行声明或者改函数的代码编写位于main函数之前。

函数的更具是否有参数可以分为有参调用无参调用, 函数在调用时必须要与函数的参数类型以及意义进行匹配,并且按照函数的返回值类型返回相应的返回值。

常见的函数调用形式:

       y=sqrt(x);

       c=max(a,b);

       x=rand(); 
       rand (1);
函数的调用方式:

(1)函数调用语句:rand ((unsigned)time(NULL));
(2)函数表达式:    y= sqrt (x); 

(3)函数参数:      y=sqrt(1-cos(x));

函数的递归调用

一个函数直接或者间接的调用自身叫做函数的递归调用,例如典型的“猴子吃桃”问题就是使用递归调用来实现的。


上面的式子就是一个非常典型的递归调用。

函数调用中的“形参”与“实参”

形参:形参动态分配存储空间,只会在调用时进行分配,函数调用结束后自动释放内存空间。

实参:实参必须有具体的值,具有实际意义,实参可以是“常量”、“变量”、“表达式”、

注意:实参与形参的的数据类型必须一致,且顺序一致,个数相同。

函数的局部变量与全局变量

局部变量:在函数内部定义,只在本函数内有效。

全局变量:在函数外定义,有效范围从定义变量的位置开始到本程序结束为止。例如:宏定义。

函数程序示例

函数功能:从用户端接收用户输入的a与b的值,求解a+b的值:

程序源代码:

#include <stdio.h>

int sum(int x,int y);                  //函数声明

void main()                            //main函数
{
	int c=0;
	int a,b;
	printf("请输入a的值:");
	scanf("%d",&a);
	printf("请输入b的值:");
	scanf("%d",&b);
	c=sum(a,b);                     //函数调用
	printf("a+b的值为:%d\n",c);  
}
int sum(int x,int y)                   //功能函数,求解两数字之和
{
	int sum;                        
	sum=x+y;
	return sum;
}

程序运行结果:


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

FLy_鹏程万里

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

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

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

打赏作者

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

抵扣说明:

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

余额充值