目录
一.什么是函数?
函数是一系列C语句的集合,是为了完成某个会重复使用的特定功能。需要该功能的时候,直接调用该函数即可,以避免每次都堆叠一大堆代码。需要修改该功能的时候,只要修改和维护这一个函数即可。将语句集合成函数,好处是方便代码重用。
二.函数的定义
函数是一段可以重复使用的代码,它既可以接收用户传递的数据也可以不接收,在接收用户数据时使用的函数在定义时要指明参数,在不接收用户数据时使用的函数在定义时则不需要指明参数。因此,可以将函数分为有参函数和无参函数。
函数的一般形式:
声明;
函数类型 函数名
{
语句
}
三.无参函数
1.定义
函数不接收用户传递的数据在定义时可以不带参数就称为无参函数。
函数类型:它可以是C语言中的任意数据类型,例如 int、float、char 等。
函数名:它是标识符的一种,命名规则和标识符相同。函数名后面的括号( )
不能少。
函数主体:它是函数需要执行的代码,是函数的主体部分。即使只有一个语句,函数体也要由{ }
包围。
如果有返回值,在函数体中使用 return 语句返回。return 出来的数据的类型要和函数类型一样。
例如:计算从1加到10的结果
#include <stdio.h>
int sum(){
int i, sum=0;
for(i=1; i<=10; i++){
sum+=i;
}
return sum;
}
int main(){
int a = sum();
printf("The sum is %d\n", a);
return 0;
}
累加的结果保存在变量sum中,最后通过return来返回。sum 是 int 型,返回值也是 int 类型,它们一一对应。
return是C语言中的关键字,只能用在函数中,用来返回处理结果。
注意:函数不能镶嵌定义,所以要将 sum 放在 main 外面。函数必须先定义后使用,所以 sum 要放在 main 前面。
2.无返回值函数
有的函数不需要返回值,那么可以用void来表示。
void hello(){
printf ("Hello,world \n");
//没有返回值就不需要 return 语句
}
注意: void是C语言中的一个关键字,表示“空类型”或“无类型”,绝大部分情况下也就意味着没有 return 语句。
四.有参函数
1.定义
函数接收用户传递的数据在定义是带上参数就称为有参函数。
有参函数的一般形式为:
声明;
函数类型 函数名(参数类型1 参数名1, 参数类型2 参数名2, …, 参数类型n 参数名n)
{
语句部分
}
参数可以为一个,也可为多个,多个参数之间由,
分隔。参数本质上也是变量,定义时要指明类型和名称。与无参函数的定义相比,有参函数的定义仅仅是多了一个参数列表。
注意:数据通过参数传递到函数内部进行处理,处理完成以后再通过返回值告知函数外部。
2。形参与实参
函数定义时给出的参数称为形式参数,简称形参;函数调用时给出的参数(也就是传递的数据)称为实际参数,简称实参。函数调用时,将实参的值传递给形参,相当于一次赋值操作。
原则上讲,实参的类型和数目要与形参保持一致。如果能够进行自动类型转换,或者进行了强制类型转换,那么实参类型也可以不同于形参类型,例如将 int 类型的实参传递给 float 类型的形参就会发生自动类型转换。
注意:数组元素可以用作函数实参,不能用作形参。
C语言在用数组元素作函数实参时,把实参的值传给形参,是“值传递”方式。
数据传递的方向是从实参传到形参,单向传递。