1.库函数类型
①IO函数
输入输出函数,如printf、scanf、getchar、putchar
②字符串操作函数
如 strlen strcmp
③字符操作函数
toupper 小写转大写
④内存操作函数
memcpy memcmp memset
⑤时间/日期函数
time
⑥数学函数
sqrt pow
⑦其他库函数
2.自定义函数(函数体)
语法:
函数返回类型 函数名(函数参数1,2)
{
语句项;
}
定义函数必须在调用函数之前
若需使用,可先声明
函数的声明一般在头文件处,同时一般在源文件表示函数
引用头文件#include "add.h" 使用双引号
如:
int Add(int,int);//仅需声明类型
定义函数时的参数为形式参数(形参):形式参数只有在被调用时才会实例化,在函数调用完后就自动销毁,因此形式参数只在函数内部生效。
调用函数时的参数为实际参数(实参):真实传递给函数的参数,可以是变量、常量、表达式、函数,必须有确定的值。
仅传值的话,形参是实参的一个拷贝,无法改变实参。
若需改变,需要使用指针(传址调用)
如
int Swap(int* x,int* y)//定义函数
{
int z= *x;
*x = *y;
*y = z;
}
Swap(&a,&b);//调用
注:若需要数组的元素个数,需在函数外部求,传入函数的“数组”仅为数组首元素的地址。
3.函数的嵌套调用和链式访问
函数不可嵌套定义,但可以嵌套调用
链式访问:
把一个函数的返回值作为另一个函数的参数
如
printf("%d",printf("%d",printf("%d",43)));
打印值为4321
printf的返回值为字符串长度