在我们的C语言中,为了解决代码重复编写的问题,我们可以把一些代码提取出来,写成一个函数,并给这段代码写一个名字,然后呢通过这个名字调用一下这个代码就可以了,这个就是我们的函数,大多数的功能都是依靠函数来实现的,所以函数对于我们来说还是非常重要的。
1.什么是函数
(1)函数是一块代码,接受零个或多个参数,做一件事情,并返回零个或一个值。
(2)语法格式:
返回值类型 函数名(参数类型 参数名1,参数类型 参数名2,…,参数类型 参数名n,)
{
执行语句
…
return 返回值
}
#include <stdio.h>
void sum(int begin,int end)
{
int i;
int sum=0;
for ( i=begin;i<=end;i++){
sum += i;
}
printf("%d到%d的和是%d\n",begin,end,sum);
}
int main()
{
sum(1,10);
sum(20,30);
sum(35,45);
return 0;
}
2.函数定义
3.调用函数
(1)
- 语法格式:函数名(参数值)
- ()起到了表示函数调用的重要作用
- 即使没有参数也需要()
- 如果有参数,则必须满足形参与实参个数相等、顺序对应、类型匹配
- 如果是无参函数,()也不能省略
- 这些值会被按照顺序依次用来初始化函数中的参数
(2)函数分为有参函数和无参函数
有参函数,如:
void add (int a,int b)
{
int sum=a+b;
printf("sum=%d\n,sum);
}
无参函数,如:
void func()
{
printf("这是我的第一个函数\n");
}
(3)函数的参数分为形式参数和实际参数
实参可以是:变量、常数、表达式
(4)函数的三种调用方式
- 将函数作为表达式调用,如:int a=max(10,20);
- 将函数作为语句调用,如:printf(“hello”);
- 将函数作为实参调用,如:printf("%d,max(10,20);
4.函数返回
(1) 函数知道每一次是哪里调用它,它返回到正确的地方。
(2)语法格式:return 表达式
#include <stdio.h>
int max(int a,int b)
{
int ret;
if(a>b){
ret=a;
}else{
ret=b;
}
return ret;
}
-
return停止函数执行,并送回一个值
-
一个函数可以出现多个return语句
-
可以赋值给变量
-
可以再传递给函数
5.没有返回值的函数 -
语法格式:void 函数名(参数表)
-
不能使用带值的return
-
可以没有return
-
调用的时候不能做返回值的赋值
-
如果函数有返回值,则必须使用带值的return