Hi,您好,欢迎来到西安盛图软件科技有限公司!

|C语言|函数的定义

发布时间:2023-11-21 14:22:04

函数是一段可以重复使用的代码,用来独立地完成某个功能,它可以接收用户传递的数据,也可以不接收。接收用户数据的函数在定义时要指明参数,不接收用户数据的不需要指明,根据这一点可以将函数分为有参函数和无参函数。

将代码段封装成函数的过程叫做函数定义

C语言无参函数的定义

如果函数不接收用户传递的数据,那么定义时可以不带参数。如下所示:

dataType  functionName(){
    //body
}


例如,定义一个函数,计算从 1 加到 100 的结果:

int sum(){int i, sum=0;for(i=1; i<=100; i++){sum+=i;}return sum;}

累加结果保存在变量sum中,最后通过return语句返回。sum 是 int 型,返回值也是 int 类型,它们一一对应。

return是C语言中的一个关键字,只能用在函数中,用来返回处理结果。

将上面的代码补充完整:

  1. #include <stdio.h>


  2. int sum(){

  3. int i, sum=0;

  4. for(i=1; i<=100; i++){

  5. sum+=i;

  6. }

  7. return sum;

  8. }


  9. int main(){

  10. int a = sum();

  11. printf("The sum is %d\n", a);

  12. return 0;

  13. }


运行结果:
The sum is 5050

函数不能嵌套定义,main 也是一个函数定义,所以要将 sum 放在 main 外面。函数必须先定义后使用,所以 sum 要放在 main 前面。

注意:main 是函数定义,不是函数调用。当可执行文件加载到内存后,系统从 main 函数开始执行,也就是说,系统会调用我们定义的 main 函数。

无返回值函数

有的函数不需要返回值,或者返回值类型不确定(很少见),那么可以用 void 表示,例如:

void hello(){printf ("Hello,world \n");//没有返回值就不需要 return 语句}


void是C语言中的一个关键字,表示“空类型”或“无类型”,绝大部分情况下也就意味着没有 return 语句。

C语言有参函数的定义

如果函数需要接收用户传递的数据,那么定义时就要带上参数。如下所示:

dataType  functionName( dataType1 param1, dataType2 param2 ... ){
    //body
}

dataType1 param1, dataType2 param2 ...是参数列表。函数可以只有一个参数,也可以有多个,多个参数之间由,分隔。参数本质上也是变量,定义时要指明类型和名称。与无参函数的定义相比,有参函数的定义仅仅是多了一个参数列表。

数据通过参数传递到函数内部进行处理,处理完成以后再通过返回值告知函数外部。

更改上面的例子,计算从 m 加到 n 的结果:

int sum(int m, int n){int i, sum=0;for(i=m; i<=n; i++){sum+=i;}return sum;}

参数列表中给出的参数可以在函数体中使用,使用方式和普通变量一样。

调用 sum() 函数时,需要给它传递两份数据,一份传递给 m,一份传递给 n。你可以直接传递整数,例如:

int result = sum(1, 100);  //1传递给m,100传递给n

也可以传递变量:

int begin = 4;
int end = 86;
int result = sum(begin, end);  //begin传递给m,end传递给n

也可以整数和变量一起传递:

int num = 33;
int result = sum(num, 80);  //num传递给m,80传递给n

函数定义时给出的参数称为形式参数,简称形参;函数调用时给出的参数(也就是传递的数据)称为实际参数,简称实参。函数调用时,将实参的值传递给形参,相当于一次赋值操作。

原则上讲,实参的类型和数目要与形参保持一致。如果能够进行自动类型转换,或者进行了强制类型转换,那么实参类型也可以不同于形参类型,例如将 int 类型的实参传递给 float 类型的形参就会发生自动类型转换。

将上面的代码补充完整:

  1. #include <stdio.h>


  2. int sum(int m, int n){

  3. int i, sum=0;

  4. 上一篇:什么是编程语言
    下一篇:C++基础| 指针数组