C语言教程:函数(过程或子程序)

2018-10-0707:55:56编程语言入门到精通Comments8,962 views字数 2332阅读模式

C语言中的函数在其他编程语言中也称为过程或子程序。要执行任务,我们可以创建函数。一个函数可以被多次调用。 它提供了模块化和代码可重用性。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

C语言中函数的优点

函数有很多优点。它们分别如下 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

(1)代码可重用性文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

通过在CC语言中创建函数,开发人员可以多次调用它。 所以开发人员不需要一次又一次地编写相同的代码。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

(2)代码优化文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

它使代码优化,我们不需要编写很多代码。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

假设你要检查3个数字(781,883531)是否是素数。如果不使用函数,需要编写3次计算素数逻辑。所以有重复的代码。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

但是,如果您使用函数,则只需将计算的逻辑编写一次即可重复使用多次。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

函数类型

C语言编程中有两种类型的函数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

  • 库函数:是在C头文件中声明的函数,如:scanf()printf()gets()puts()ceil()floor()等。
  • 用户定义的函数:是由C程序员自己创建的函数,以便他/她可以使用它多次。 它可以降低大型程序的复杂性并优化代码。

C语言教程:函数(过程或子程序)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

函数声明

C语言中创建函数的语法如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

return_type function_name(data_type parameter...){  
   //code to be executed  
}
C

返回值

C语言函数可以返回或不返回该函数的值。如果您不需要从函数返回任何值,请对返回类型使用void文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

我们来看一个C语言函数的简单示例,它不会从函数返回任何值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

没有返回值的示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

void hello(){  
    printf("hello c");// 没有返回值,只是打印一个字符串
}
C

如果要从函数返回返回某个/些值,则需要使用任何数据类型,如:intlongchar等。返回类型取决于要从函数返回的值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

我们来看一个C语言函数的简单例子,它从函数返回int值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

返回值示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

int get(){  
    return 10;  
}
C

在上面的例子中,我们必须返回10作为一个值,所以返回类型是int。 如果要返回浮点值(例如10.2,3.1,54.5等),则需要指定使用float作为函数的返回类型。如下所示 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

float get(){  
    return 10.2;  
}
C

现在,需要来了解如何调用函数,获取函数的返回值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

C语言函数中的参数

C语言函数可能有0个或更多个参数。可以在C程序中具有任何类型的参数,如:intfloatchar等。参数也称为形式参数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

没有使用参数的函数示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

void hello(){  
    printf("hello c");  
}
C

具有1个参数的函数示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

int cube(int n){  
    return n*n*n;  
}
C

具有2个参数的函数示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

int add(int a, int b){  
   return a+b;  
}
C

在C语言中调用函数

如果函数返回任何值,则需要调用函数来获取函数返回的值。 在C语言中调用函数的语法如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

variable=function_name(arguments...);
C

(1)variable:变量不是强制性的。如果函数返回类型为void,则不能提供变量来接收函数返回的值,因为void函数不返回任何值。
(2)function_namefunction_name是要调用的函数的名称。
(3)arguments:调用C语言函数时需要提供参数。它也被称为实际参数(简称:实参)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

调用函数的例子:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

hello(); //calls function that doesn't return a value  
int value=get(); //calls function that returns value  
int value2=add(10,20); //calls parameterized function by passing 2 values
C

函数示例

1. 没有return语句的函数示例

下面来看看看C语言函数的简单程序,它不从函数返回任何值。创建一个名称为:function的工程,并在这个工程里创建一个源文件:function-without-params.c,其代码如下所示 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

#include <stdio.h>      
#include <conio.h> 

//定义一个无参数函数,简单地打印一个字符串
void hello() {
    printf("hello c programming");
}
void main() {

    hello(); // 调用函数
    hello(); // 再一次调用函数
    hello(); // 再一次调用函数
}
C

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

hello c programming
hello c programming
hello c programming
Shell

2. 带有return语句的C函数示例

我们来看看C语言中一个带有参数的函数程序。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

创建一个源文件:function-with-params.c,其代码如下所示 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

#include <stdio.h>      

// 定义一函数,返回给定参数值的立方值
int cube(int n) {
    return n*n*n;
}

// 定义一函数,返回给定两个参数值的最大值
int max(int a, int b) {
    if (a > b) {
        return a;
    }else {
        return b;
    }
}

void main() {
    int result1 = 0, result2 = 0;
    int a = 10, b = 20, c = 0;

    result1 = cube(2); // 调用函数
    result2 = cube(5);

    c = max(a, b); //

    printf("the cube of 2 is : %d \n", result1);
    printf("the cube of 5 is : %d \n", result2);
    printf("the max value of %d and %d is :%d \n", a, b, c);
}
C

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html

the cube of 2 is : 8
the cube of 5 is : 125
the max value of 10 and 20 is :20
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/6420.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/6420.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定