为什么需要函数:
1、避免重复性操作
2、有利于程序的模块化
什么是函数:
逻辑上:能够完成特点功能的代码块
物理上:能够接收数据【也可以不接收数据】
能够对接收的数据进行处理
能够将数据处理的结果返回【也可以不返回任何值】
总结:
函数是个工具,他是为了解决大量类似问题而设计的,相当于一个黑匣子
如何定义一个函数:
函数返回值类型 函数名(形式参数)
{
函数执行体
}
1、函数定义的本质是详细描述函数之所以能够实现某个特定功能的具体方法
2、return 表达式, 含义,以及和break的区别
1、终止被调函数,向主调函数返回表达式的值
2、若被调函数的表达式为空,则return终止函数,不返回任何值。
3、break是用来终止循环和switch的,return是用来终止函数的。
3、函数返回值得类型,也称函数的类型,因为如果return返回的值的类型和定义时的函数返回值的类型不一样,那么以定义时的为准。
函数的分类:
1、有参函数和无参函数
2、 有返回值函数和无返回值函数
3、库函数和用户自定义的函数
4、值传递函数和地址传递函数
5、普通函数和主函数(main函数)
一个程序必须有且只有一个主函数
主函数(main函数)可以调用普通函数,普通函数不可以调用主函数(main函数)
普通函数之间可以相互调用
主函数是程序的入口,同时也是程序的出口。
函数调用和函数定义的顺序
若果函数调用写在了函数的前面,那么必须加函数函数前置声明
函数前置声明作用:
1、告诉编译器即将可能出现的一组字母是一个函数
2、告诉编译器这个函数的返回值的类型,形参类型
3、函数声明是一个语句,末尾必须加上分号
4、对库函数的声明是通过 #include <库函数文件的名字.h> 来声明的
形参和实参:
个数必须相同
位置一一对应
数据类型必须相互兼容
函数的合理设计:
每个函数的功能尽量单一,提高代码的利用率
常用的系统函数:
double sqrt(double x); 求的x的平方根
int abs(int x); 求x的绝对值
double fabs(double x); 求x的绝对值