C语言系列之函数
1功能
通过C++的官网来查找我们可以看到这个库函数的功能,如下图:
2.2.2头文件包含
库函数是在标准库中对应的头⽂件中声明的,所以库函数的使用,必须包含对应的头文件,不包含是可能会出现⼀些问题的。比如sqrt这个库函数必须包含:<math.h>这个头文件。
2.2.3实践
sqrt库函数的实现示例:
代码语言:c
AI代码解释
# include<stdio.h>
# include<math.h>
int main()
{
double s = 25.0;
double n = sqrt(s);
printf("%lf\n", n);
return 0;
}
运行结果如下图:
2.2.4库函数文档的一般格式
1、函数原型
2、函数功能的介绍
3、参数和返回类型说明
4、代码举例
5、代码输出
6、相关知识链接
三、自定义函数
了解了库函数,我们可以了解一下自定义函数,自定义函数的出现为程序员写的代码创造了更多的可能。下面来介绍自定义函数。
3.1函数的语法形式
自定义函数的语法形式和库函数相似,形式如下:
代码语言:c
AI代码解释
ret_type fun_name(形式参数)
{
}
注:ret_type 是函数返回类型;fun_name 是函数名;括号中放的是形式参数;{ }括起来的是函数体
函数通常会输入一些值,然后函数内的计算,来得出结果。
ret_type 是⽤来表⽰函数计算结果的类型,有时候返回类型可以是void ,表示什么都不返回。
fun_name是为了方便使用函数,函数有了名字方便调用,所以函数名尽量要根据函数的功能起的有意义。
函数的参数可以是void ,明确表示函数没有参数。如果有参数,要交代清楚参数的类型和名字,以及参数个数。
{ }括起来的部分被称为函数体,函数体就是完成计算的过程。
3.2自定义函数的实例
通过上面我们了解到自定义函数的语法形式以及注意事项和作用,我们下面来举一些示例:
例:写一个加法函数,完成2个整型变量的加法操作。
代码语言:c
AI代码解释
#include <stdio.h>
int Add(int x, int y)
{
int z = x + y;
return z;//这个代码块可改为return x+y;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int c = Add(a, b);
printf("c = %d", c);
return 0;
}
在VS上运行的话会出现scanf报错问题可以查看我前面的文章来解决,可永久解决这个问题。
四、形参和实参
接下来我们来看看形参和实参,我们先看看前面写的代码。
代码语言:c
AI代码解释
#include <stdio.h>
int Add(int x, int y)
{
int z = x + y;
return z;//这个代码块可改为return x+y;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int c = Add(a, b);
printf("c = %d", c);
return 0;
}
4.1实参
在写完Add函数后,我们要使用的话就必须去调用它,并且给它传入自己想要给的参数,Add函数写完后在main函数中调用,在调用的时候会传两个参数(a,b),而这两个参数(a,b)就是实参(实际参数)。实际参数就是真实传递给函数的参数。
注:实参:调用函数时,传递给函数的参数就是实参,实际参数。
4.2形参
在写Add函数时,函数名Add后括号中x,y就是形式参数,简称形参。
注:形参:函数定义中,函数名后边的括号中的参数就是形式参数,简称形参。
为什么叫形式参数?
实际上,如果只是定义了Add 后的括号中写的x和y,称为形式参数,简Add 函数,⽽不去调⽤的话,Add 函数的参数x和y只是形式上存在的,不会向内存申请空间,不会真实存在的,所以叫形式参数。形式参数只有在
函数被调⽤的过程中为了存放实参传递过来的值,才向内存申请空间,这个过程就是形参的实例化。
4.3形参与实参的关系
实参传递给形参,他们之间是有关系的,但是形参和实参是各自独立的内存空间。
更多推荐

所有评论(0)