第六章 函数

函数是一个可以反复执行的程序段。在一个程序中,如果需要多次执行某项功能或操作,则可以把完成该功能或操作的程序段从程序中独立出来定义为函数,而源程序中需要执行该功能或操作时,可以通过函数调用来替代,已达到简化程序的目的。
建立函数称为函数定义,使用函数称为函数调用。调用其他函数的函数称为主函数,被调用的函数称为被调函数。每个函数所完成的特定任务称为函数功能。
函数具有如下特点:
1.一个C程序由一个或者多个函数组成,其中必须有且有一个main函数(称为主函数)。
2.C程序的执行从主函数开始,如果在主函数中调用其它函数,调用后返回到主函数,并在主函数中结束整个程序的运行。
3.主函数可以调用其他函数,但是其它函数不能调用主函数。主函数有操作系统调用,其他函数之间可以互相调用。
4.函数之间没有从属关系,互相独立,不能嵌套定义
函数的分类
1.从函数定义的角度,分为库函数和用户函数
库函数是系统已经定义号的函数,在包含相应头文件后用户可以之间使用。用户函数是用户根据需要自行定义的完成特定功能的一段程序
2.从函数有无参数的角度,函数分为有参函数和无参函数
3.从函数有无返回值的角度, 函数分为有返回值和无返回值函数
4.C语言允许将一个源程序分放在不同的程序文件中,采用分块编译,链接生成一个目标程序,其中每个程序文件称为一个“编译单元”。每个编译单元可以包含若干个函数。
函数的调用方式
1.以函数表达式的方式调用函数
2.以函数语句的方式调用函数
3.以函数实参的方式调用函数
函数声明又称为函数原型
函数的参数和数据传递方式
1.值传递方式是在形参和实参之间传递数据的一种方式,值传递方式传递的是参数值。判断是否值传递方式的唯一方法是看函数定义时的形参是不是变量形式。如果形参时变量,则时值传递方式。如果调用该函数时的实参可以是常量,变量,表达式,数组元素等。无论实参式任何类型,在进行函数调用时,他们都必须具有确定的值,以便把这些值传递给形参。
2.数组元素作为函数实参时,和变量作为实参是一样的,实现单向的值传递方式。数组名作为函数参数时,既可以作为形参,也可以作为实参。数组名作为函数参数时,要求形参和相应的实参必须时同类型的数组,都必须有明确的数组定义。如果形参时数组名,则传递方式称为:‘“地址传递方式”

C语言中变量的存储类型分为自动型(auto),寄存器型(register),外部型(extern)和静态型(static)四种。变量的存储方式分为两大类,即静态存储方式和动态存储方式。静态存储方式时在编译时有系统分配固定的存储空间,直到程序运行结束后才释放所占用的存储空间;动态存储方式时在程序运行时根据需要动态地分配和释放存储空间。自动型变量和寄存器型变量属于动态存储方式;外部型变量和静态变量属于静态存储方式。

常用的库函数:
数学处理
int abs(int x) 返回整数X的绝对值
long labs(long x) 返回长整型数x的绝对值
double fabs(double x) 返回双精度实型的绝对值
double floor(double x) 返回小于或等于x 的最大整数对应的双精度实数
double ceil(double x) 返回大于或等于x的最小整数对应的双精度实数
double sqrt(double x) 返回x的平方根
double log10(double x) 返回常用对数的值
double log(double x) 返回自然对数的值
double exp(double x) 返回e^x 的值
double pow10(int x) 返回10^x的值
double pow(double x,doubue y) 返回 x^y的值
double sin(double x) 返回正弦函数 sin(x)的值
double cos(double x) 返回余弦函数cos(x)的值
double tan(double x) 返回正切函数tan(x)的值
常用类型转换函数
double atof(char *x) 字符串转换成浮点数函数
int atoi(char *x) 字符串转换成整数函数
int isalpha(int x) 判断是否字母函数
int islower(int x)判断是否小写字母函数
int isupper(int x) 判断是否大写字母函数
int isdigit(int x)判断是否数字字符函数
int tolower(int x) 将大写字母转换为大写字母函数
void randomize() 随机数发生器初始化函数
int random(int x) 随机数发生函数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值