文章目录
- 前言
- 一、函数的定义与调用
- 二、返回值
- 三、变量空间
- 总结
前言
在遇到重复代码块时,我们如果不想把每一个都写出来,这就要用到函数了。函数可以让我们的代码更加简洁,有更高的可读性。
一、函数的定义与调用
1,函数的定义
定义:函数是一段可以重复使用的代码,用来独立地完成某个功能,它可以接收用户传递的数据,也可以不接收。
接收用户数据的函数在定义时要指明参数,不接收用户数据的不需要指明,根据这一点可以将函数分为有参函数和无参函数。
函数构成:函数头(函数名,参数表,返回类型)
函数体
参数表:参数的类型,参数的个数,参数的返回类型
2,函数的调用
①调用格式:函数名(参数值);
②“()”起到手了表示函数调用的重要作用
即使没有参数也需要‘()’
③如果有参数,则需要给出正确的数量和顺序
④这些值会被按照顺序依次用来初始化函数中的参数
函数要把参数写全,如果没有参数就要加void
例:void swap(void);
3,函数原型
①函数头以‘ ; ’结尾,就构成了函数的原型
②函数原型的作用:函数名称
参数(数量及类型)
返回类型
#include"stdio.h"
void summm(int begin,int end)
{
int i,sum;
for(i=begin,sum=0;i<=end;i++)
{
sum+=i;
}
printf("%d到%d的和是%d\n",begin,end,sum);
}
int main()
{
summm(1,10);
summm(20,30);
summm(35,45);
return 0;
}
3.函数的先后关系
c的编译器都是自上而下的顺序的分析代码,所以函数原型最好放在前面。
如果不放在前面,编译器也是可以读取的,编译器会猜测你所调用的函数里面的变量类型(大部分都是int型变量)
也可以在前面放一个函数声明,在后面放上函数主体
(函数声明,在函数头后面加一个“;”)
二、返回值
1.函数中的返回值
概念:return停止函数的执行,并送回一个值
表达方式:①return;
②return 表达式;
作用:可以赋值给变量
可以再传递给函数
可以丢弃(例如:表达方式①)
大多数函数都有返回值,调用自己的函数时,它的返回值会赋值给使用这个函数的变量
例:
#include"stdio.h"
int max(int a, int b)
{
int ret;
if(a>b)
{
ret = a;
}
else
{
ret = b;
}
return ret; //返回值为ret=6
}
int main()
{
int c;
c = max(5, 6); //变量c接收返回值ret
c = max(c, 7); //可以赋值给变量
c = max(max(c, 8), 9); //可以赋值给函数
printf("%d\n", c);
return 0;
}
2.没有返回值的函数
构成:void 函数名(参数表)
对于这种函数,可以自己选择是否带return,但是带return时就不能带值
在调用的时候不能做返回的赋值
例:
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);
}
三、函数中的变量
1.本地变量
概念:函数的每次运行,就产生了一个独立的变量空间,在这个空间中的变量,是函数的这次运行所独有的
定义在函数内部的变量就是本地变量。参数也是本地变量
在不同函数中可定义相同名称的变量,但它们的可以看做是另外两个变量,与其他函数里面的变量毫无关系
例:
#include"stdio.h"
void swap(int a, int b);
int main()
{
int a = 6, b = 7;
swap(a, b);
printf("a=%d , b=%d", a, b);
return 0;
}
void swap(int a, int b)
{
int t = a;
a = b;
b = t;
}
运行结果毫无改变
2.变量的生存期
什么时候这个变量开始出现了,到什么时候它消亡了,在这个期间就是变量的生存期
3.变量的作用域
在(代码的)什么范围内可以访问这个变量(这个变量可以起作用),这个区间就是作用域
4.本地变量的规则
·本地变量可以是定义在函数的块内,也可以定义在语句的块内
·程序运行进入这个块之前,其中的变量不存在,离开这个块,其中的变量就消失了
·块外面定义的变量在里面仍然有效
·块里面定义了和外面同名的变量则掩盖了外面的,不能在一个块内定义同名的变量
·本地变量不会被默认初始化
·参数在进入函数的时候被初始化了
总结
函数是一段可以重复使用的代码,用来独立地完成某个功能,使用函数可以让代码更加简化,增强可读性,更便于理解。但在使用前要先想好定义的函数是什么。