• C 语言函数


    C 语言函数

    在本教程中,将向您介绍C语言编程中的函数(用户定义函数和标准库函数)。此外,您还将学习为什么在编程中使用函数。

    函数是执行特定任务的代码块。

    假设您需要创建程序来创建一个圆并为其着色。您可以创建两个函数来解决此问题:

    • 创建一个圆的函数
    • 创建颜色的函数

    将复杂的问题分成较小的块可以使我们的程序易于理解和重用。

    C 语言函数的优势

    C函数具有以下优点。

    • 通过使用函数,我们可以避免在程序中一次又一次地重写相同的逻辑/代码。
    • 我们可以在程序中以及在程序的任何位置多次调用C函数。
    • 当大型C程序被划分为多个函数时,我们可以轻松地对其进行跟踪。
    • 可重用性是C函数的主要成就。
    • 但是,函数调用始终是C程序的开销。

    函数包含哪些方面

    C函数包含三个方面。

    • 函数声明 必须在C程序中全局声明函数,以告知编译器函数名称,函数参数和返回类型。
    • 函数调用 可以从程序中的任何位置调用函数。参数列表在函数调用和函数声明中要相同。我们必须传递与函数声明中声明的函数数量相同的函数。
    • 函数定义 它包含要执行的实际语句。这是调用函数时控件所涉及的最重要方面。在这里,我们必须注意,该函数只能返回一个值。
    序号C函数方面语法
    1函数声明return_type function_name(argument_list);
    2函数调用function_name(argument_list)
    3函数定义return_type function_name(argument_list){function body;}

    使用C语言创建函数的语法如下:

    示例

    return_type function_name(data_type parameter...){
        //要执行的代码
    }
    
    • 1
    • 2
    • 3

    函数类型

    C语言编程中有两种类型的函数:

    1. [标准库函数]:在C头文件中声明的函数,例如scanf(),printf(),gets(),puts(),ceil(),floor()等。
    2. [用户定义的函数]:C程序员自定义的函数,我们可以多次使用它。它降低了大型程序的复杂性并优化了代码。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    返回值

    C函数可能会也可能不会从该函数返回值。如果您不必从函数返回任何值,则将void用作返回类型。

    让我们看一个简单的C函数示例,该函数不会从该函数返回任何值。

    没有返回值的示例:

    示例

    void hello(){
        printf("hello c");
    }
    
    • 1
    • 2
    • 3

    如果要从函数返回任何值,则需要使用任何数据类型,例如int,long,char等。返回类型取决于要从函数返回的值。

    让我们看一个简单的C函数示例,该函数从该函数返回int值。

    返回值示例:

    示例

    int get(){
        return 10;
    }
    
    • 1
    • 2
    • 3

    在上面的示例中,我们必须返回10作为值,因此返回类型为int。如果要返回浮点值(例如10.2、3.1、54.5等),则需要使用float作为方法的返回类型。

    示例

    float get(){
        return 10.2;
    }
    
    • 1
    • 2
    • 3

    现在,您需要调用该函数以获取该函数的值。

    函数调用的不同方面

    函数可以接受也可以不接受任何参数。它可能会或可能不会返回任何值。基于这些事实,函数调用有四个不同方面。

    • 没有参数且没有返回值的函数
    • 没有参数但有返回值的函数
    • 有参数且无返回值的函数
    • 带有参数和返回值的函数

    不带参数和返回值的函数示例

    实例1

    示例

    #include
    void printName();
    void main ()
    {
        printf("Hello ");
        printName();
    }
    void printName()
    {
        printf("hello c");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    输出结果

    hello c
    
    • 1

    实例2

    示例

    #include
    void sum();
    void main()
    {
        printf("\n计算两个数的和:");
        sum();
    }
    void sum()
    {
        int a,b; 
        printf("\n输入两个数字");
        scanf("%d %d",&a,&b); 
        printf("总和是 %d",a+b);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    输出结果

    计算两个数的和:
    
    输入两个数字 10 
    24 
    
    总和是 34
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    不带参数返回值的函数示例

    实例1

    示例

    #include
    int sum();
    void main()
    {
        int result; 
        printf("\n计算两个数的和:");
        result = sum();
        printf("%d",result);
    }
    int sum()
    {
        int a,b; 
        printf("\n输入两个数字");
        scanf("%d %d",&a,&b);
        return a+b; 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    输出结果

    计算两个数的和:
    
    输入两个数字 10 
    24 
    
    34
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    示例2:程序计算正方形的面积

    示例

    #include
    int sum();
    void main()
    {
        printf("计算这个正方形的面积\n");
        float area = square();
        printf("正方形的面积: %f\n",area);
    }
    int square()
    {
        float side;
        printf("输入边长(以米为单位): ");
        scanf("%f",&side);
        return side * side;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    输出结果

    计算这个正方形的面积 
    正方形的面积: 10 
    输入边长(以米为单位): 100.000000
    
    • 1
    • 2
    • 3

    带参数且不带返回值的函数示例

    实例1

    示例

    #include
    void sum(int, int);
    void main()
    {
        int a,b,result; 
        printf("\n计算两个数的和:");
        printf("\n输入两个数字:");
        scanf("%d %d",&a,&b);
        sum(a,b);
    }
    void sum(int a, int b)
    {
    	printf("\n总和是 %d",a+b);    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    输出结果

    计算两个数的和:
    
    输入两个数字 10 
    24 
    
    总和是 34
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    示例2:程序计算五个数字的平均值。

    示例

    #include
    void average(int, int, int, int, int);
    void main()
    {
        int a,b,c,d,e; 
        printf("\n要计算五个数的平均值:");
        printf("\n输入五个数字:");
        scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);
        average(a,b,c,d,e);
    }
    void average(int a, int b, int c, int d, int e)
    {
    	float avg; 
    	avg = (a+b+c+d+e)/5; 
    	printf("给定五个数字的平均值 : %f",avg);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    输出结果

    要计算五个数的平均值:
    输入五个数字:10 
    20
    30
    40
    50
    给定五个数字的平均值 : 30.000000
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    带参数和返回值的函数示例

    实例1

    示例

    #include
    int sum(int, int);
    void main()
    {
        int a,b,result; 
        printf("\n计算两个数的和:");
        printf("\n输入两个数字:");
        scanf("%d %d",&a,&b);
        result = sum(a,b);
        printf("\n总和是 : %d",result);
    }
    int sum(int a, int b)
    {
    	return a+b;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    输出结果

    计算两个数的和:
    输入两个数字:10
    20 
    总和是 : 30
    
    • 1
    • 2
    • 3
    • 4

    示例2:检查数字是偶数还是奇数的程序

    示例

    #include
    int even_odd(int);
    void main()
    {
     int n,flag=0;
     printf("\n检查一个数字是偶数还是奇数");
     printf("\n输入数字: ");
     scanf("%d",&n);
     flag = even_odd(n);
     if(flag == 0)
     {
     	printf("\n数字是奇数");
     }
     else 
     {
     	printf("\n这个数是偶数");
     }
    }
    int even_odd(int n)
    {
    	if(n%2 == 0)
    	{
    		return 1;
    	}
    	else 
    	{
    		return 0;
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    输出结果

    检查一个数字是偶数还是奇数
    输入数字: 100
    这个数是偶数
    
    • 1
    • 2
    • 3

    C 标准库函数

    标准库函数是C语言中的内置函数,它们被分组并放置在称为库的公共位置。这些函数用于执行某些特定操作。例如,printf是用于在控制台上打印的库函数。库函数由编译器的设计者创建。所有C标准库函数都在扩展名为**.h**的不同头文件中定义。我们需要在程序中包含这些头文件,以利用在此类头文件中定义的库函数。例如,要使用诸如printf / scanf之类的库函数,我们需要在程序中包含stdio.h,这是一个头文件,其中包含有关标准输入/输出的所有库函数。

    下表列出了最常用的头文件。

    序号头文件描述
    1stdio.h这是一个标准的输入/输出头文件。它包含有关标准输入/输出的所有库函数。
    2conio.h这是一个控制台输入/输出头文件。
    3string.h它包含所有与字符串相关的库函数,例如gets(),puts()等。
    4stdlib.h该头文件包含所有通用库函数,例如malloc(),calloc(),exit()等。
    5math.h该头文件包含所有与数学运算相关的函数,例如sqrt(),pow()等。
    6time.h该头文件包含所有与时间有关的函数。
    7ctype.h该头文件包含所有字符处理函数。
    8stdarg.h变量参数函数在此头文件中定义。
    9signal.h所有信号处理函数都在此头文件中定义。
    10setjmp.h该文件包含所有跳转函数。
    11locale.h该文件包含语言环境函数。
    12errno.h该文件包含错误处理函数。
    13assert.h该文件包含诊断函数。
  • 相关阅读:
    Linux——(第五章)用户管理
    2022 年 25 大 Java 8 面试问题和答案 - 从基础到有经验
    Cisco ASA防火墙——远程控制与多安全区域
    全局配置-window和tabBar
    上班干,下班学!这份 Java 面试八股文涵盖 20 多个技术点,还有优质面经分享,别再说卷不过别人了~
    C++入门(二)
    OpenCV每日函数 计算摄影模块(5) 无缝克隆算法
    主流大语言模型的技术细节
    synchronized关键字详解-偏向锁、轻量级锁、偏向锁、重量级锁、自旋、锁粗化、锁消除
    【算法训练-动态规划 零】动态规划解题框架
  • 原文地址:https://blog.csdn.net/Tom_Jerry__/article/details/134363349