函数是什么
函数是C语言的基本单位,也是C#、C++、Java的基本单位
逻辑上:具有特定功能的独立代码块
物理上:
- 能接收数据
- 能对数据进行处理
- 能将数据处理的结果返回
总结:函数是一个工具,可以解决大量同类问题
函数的定义和调用
函数的定义
函数的返回值 函数的名字(函数的形参列表)
{
函数的执行体
}
如下面的例子(比较两个数的大小,并输出最大值):
void max(int i, int j)
{
if (i > j)
printf ("%d", i);
else(i < j)
printf ("%d", j);
}
//函数定义的实质:详细描述该函数的特定功能是如何实现的
函数的返回值类型又称为函数的类型,因为函数最终的返回值类型以函数名前的类型为准
函数的调用
#include <stdio.h>
void max (int i, int j)
{
if (i > j)
printf ("%d", i);
else if (i < j)
printf ("%d", j);
}
int main (void)
{
int a = 1, b = 5;
max (a, b);
}
max (a, b);
max是函数的名字。i和j是形式参数,简称形参,a和b是实际参数,简称实参。void表示函数无返回值
关于函数的形参和实参
- 形参和实参的个数要相同,位置和数据类型要一一对应
- 编译器会把实参的值发送给形参
- 当函数执行完后,形参所占的内存空间会被释放
函数的分类
- 有参函数和无参函数
- 有返回值函数和无返回值函数
- 库函数和自定义函数
- 主函数(main函数)和普通函数
注意:
一个程序有且只有一个主函数。普通函数之间可以任意相互调用,主函数可以调用普通函数,但是普通函数不能调用主函数。
函数的声明
若调用函数在定义函数的前面,则需要函数的前置声明,其作用是告诉编译器即将出现的一串字母是函数的名字和该函数形参和返回值的情况
注意:
- 自定义函数的前置声明是个语句,末尾要加分号
- 库函数的声明是以# include <库函数所在的文件名.h>来实现的
#include <stdio.h>
void f (void);
//函数的前置声明,括号里面的void表示没有形参
int main (void)
{
f ();
return 0;
}
void f (void)
{
printf ("嘻嘻");
}
//结果:嘻嘻
使用函数的优点及注意事项
优点:
- 避免重复性操作
- 有利于程序的模块化
注意事项:
设计函数的功能要尽量独立、单一。从而满足不同程序的需要,让别人更容易理解代码