1.函数的概念
函数(function),有的地方翻译为子程序。C语言中的函数就是完成某项特定的任务的⼀段代码。C语言的程序其实是由无数个小的函数组合而成的,也可以说:⼀个大的计算任务可以分解成若⼲个较小的函数(对应较小的任务)完成。同时⼀个函数如果能完成某项特定任务的话,这个函数也是可以反复使用的,提升了软件的开发效率。
2.库函数
2.1:为了不再重复写常见的代码(如写一个函数按照某种格式在屏幕上打印信息、写一个函数求字符串的长度),提高程序员的开发效率,C语言标准(ANSI)规定了一些函数(每个函数都规定了函数名、返回值类型、形式参数以及函数功能),再由不同的编译器厂商根据该规定实现这些函数,提供给程序员使用。这些函数组成了一个函数库,称为标准库,这些函数就被称为库函数。 在这个基础上⼀些编译器厂商可能会额外扩展提供部分函数(这些函数其他编译器不一定支持)。
2.2:同⼀系列的库函数⼀般会声明在同⼀个头文件中(比如,与字符串相关的库函数的声明就在头文件string.h中)。使用库函数前,一定要包含对应的头文件(函数要先声明后使用,包含头文件就相当于函数的声明)。
2.3:C++中提供的库函数的链接
2.4:库函数对应的头文件链接
3.自定义函数
3.1:实参(实际参数)
#include <stdio.h>
int Add(int x, int y)
{
return x + y;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int r = Add(a, b);
printf("%d\n", r);
return 0;
}
调用Add函数时,传递给函数的参数a和b,称为实际参数,简称实参。
3.2:形参(形式参数)
当函数未被调用时,并不会向栈区为函数的形参分配空间。只有当函数被调用时,才会在栈区为形参分配空间,用来存储实参传过来的值。
3.3:实参与形参的关系
形参只是接收了实参的值,但形参与实参的空间不一样的,形参值的改变并不会影响实参值的改变
4.return语句的几点注意事项
1.当函数的返回值类型是void时,可以不写return语句,或者写return ;表示不返回任何值)
2.return后边可以是⼀个数值,也可以是⼀个表达式,如果是表达式则先执行表达式,再返回表达式的结果。
3.return语句执行后,函数就彻底返回,后边的代码不再执行。
4.return返回的值和函数返回类型不⼀致,系统会自动将return返回的值隐式转换为函数的返回类型。(建议将函数的返回值与返回类型保持一致)
int test()
{
int n = 1;
if (n == 1)
return 1.5;
else
return -1.5;
}
int main()
{
int r = test();//test函数返回的是1,而不是1.5
printf("%d", r);//1
return 0;
}