函数(Function)是 C 语言中的重要组成部分,它允许你将代码逻辑拆分成模块,提高代码的复用性和可读性。C 语言支持库函数(标准函数)和用户自定义函数


📌 目录

  1. C 语言函数概述
  2. 函数的声明和定义
  3. 函数的调用
  4. 函数参数(传值与传引用)
  5. 递归函数
  6. 库函数(标准函数)
  7. 代码示例
  8. 参考资料

1. C 语言函数概述

什么是函数?

  • 函数 是一段可以被重复调用的代码块。
  • 主要作用
    • 模块化:将复杂代码拆分,提高可读性和维护性。
    • 代码复用:避免重复编写相同代码。
    • 降低耦合性:不同模块相互独立。

C 语言函数分类

  1. 库函数(标准库函数):如 printf()scanf()strlen()
  2. 用户自定义函数:由程序员编写的函数,如 int sum(int a, int b)

2. 函数的声明和定义

在 C 语言中,函数通常由 声明(声明函数的存在)定义(具体实现函数的功能) 组成。

2.1 函数的基本结构

返回类型 函数名(参数列表) {
    // 函数体
    return 返回值;
}

2.2 函数声明

  • 作用:告诉编译器该函数的名称、返回类型和参数类型。
  • 语法返回类型 函数名(参数类型 参数名, ...);

示例:

int sum(int, int); // 函数声明

2.3 函数定义

  • 作用:提供函数的具体实现。

示例:

int sum(int a, int b) {
    return a + b;
}


3. 函数的调用

语法:

函数名(参数);

示例

#include <stdio.h>

// 函数声明
int sum(int, int);

int main() {
    int result = sum(5, 10);  // 函数调用
    printf("5 + 10 = %d\n", result);
    return 0;
}

// 函数定义
int sum(int a, int b) {
    return a + b;
}

输出:

5 + 10 = 15


4. 函数参数(传值与传引用)

4.1 传值调用(Call by Value)

  • 传递变量的副本,函数内部修改不会影响原变量。
#include <stdio.h>

void modifyValue(int x) {
    x = 10;  // 修改的是副本
}

int main() {
    int a = 5;
    modifyValue(a);
    printf("a = %d\n", a);  // a 仍然是 5
    return 0;
}

4.2 传引用调用(Call by Reference)

  • 通过指针传递变量地址,函数内部修改会影响原变量。
#include <stdio.h>

void modifyValue(int *x) {
    *x = 10;  // 直接修改原变量
}

int main() {
    int a = 5;
    modifyValue(&a);
    printf("a = %d\n", a);  // a 被修改为 10
    return 0;
}


5. 递归函数

递归函数是指在自身函数内部调用自身

示例:计算阶乘(n! = n × (n-1) × … × 1)

#include <stdio.h>

int factorial(int n) {
    if (n == 1) return 1;
    return n * factorial(n - 1);
}

int main() {
    int num = 5;
    printf("%d 的阶乘是 %d\n", num, factorial(num));
    return 0;
}

输出:

5 的阶乘是 120


6. 库函数(标准函数)

C 语言提供了丰富的标准库函数,常见类别如下:

类别示例头文件
输入输出printf(), scanf()<stdio.h>
字符串strlen(), strcpy()<string.h>
数学pow(), sqrt()<math.h>
时间time(), clock()<time.h>

示例:

#include <math.h>
#include <stdio.h>

int main() {
    double result = sqrt(16.0);
    printf("16 的平方根是 %.2f\n", result);
    return 0;
}


7. 代码示例

示例:求最大值

#include <stdio.h>

int max(int a, int b) {
    return (a > b) ? a : b;
}

int main() {
    int x = 10, y = 20;
    printf("最大值是 %d\n", max(x, y));
    return 0;
}

示例:交换两个数

#include <stdio.h>

void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

int main() {
    int x = 5, y = 10;
    swap(&x, &y);
    printf("交换后: x=%d, y=%d\n", x, y);
    return 0;
}


8. 参考资料


📌 总结

  1. 函数可以减少代码冗余,提高可读性和可维护性
  2. C 语言的函数包含声明、定义和调用
  3. 参数传递分为传值(副本,不影响原变量)和传引用(指针,影响原变量)
  4. 递归函数适用于需要自调用的情况,如阶乘计算、斐波那契数列
  5. C 提供了丰富的标准库函数,如 printf()strlen()sqrt()

掌握 C 语言函数,可以让你的代码更加结构化和高效!💡 🚀