📜  C函数(1)

📅  最后修改于: 2023-12-03 15:14:25.485000             🧑  作者: Mango

C函数

C函数是C语言中的基本组成部分之一,它是一段可重用的代码,其功能是执行某些特定的任务。

函数基本概念

函数是C语言的构建块之一,符合以下的基本概念:

  • 函数由函数名、参数列表、函数体以及返回类型组成。
  • 函数执行完任务后,可能返回一个值给调用者。
  • 需要先声明函数,才能使用它。
函数声明

函数的声明提供了关于函数名称、参数类型和返回类型的信息。例如:

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

函数声明中的名称为函数名,括号中的列表是参数类型,返回类型为int。

函数定义

函数的定义包括函数声明和函数体。定义函数时,需要为其提供以下信息:

  • 函数返回类型
  • 函数名
  • 参数列表
  • 函数体

函数体是一个由一组语句组成的块,其中包含了函数要完成的任务。

int sum(int a, int b) {
  int result = a + b;//函数体
  return result;
}

在此示例中,函数名称为sum,参数类型为int,返回类型为int。函数体包含了两个整数相加的语句。

函数调用

调用函数时,需要使用函数名和参数列表。例如:

int x = 10, y = 20;
int result = sum(x, y);//函数调用

在此示例中,我们调用了名为sum的函数,并将x和y作为参数传递给该函数。函数返回值存储在result变量中。

函数参数

C函数可以有零个或多个参数。函数参数是在函数声明或定义的括号中指定的一组变量,用于接收传递给函数的值。

在以下示例中,sum函数有两个参数,a和b:

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

调用sum函数时,我们需要提供两个整数值作为参数:

int x = 10, y = 20;
int result = sum(x, y);
函数返回值

函数返回值是函数执行完成后返回给调用者的值。函数可能没有返回值,这种情况下被称为void函数。

在以下示例中,sum函数返回一个int类型值:

int sum(int a, int b) {
  int result = a + b;
  return result;//返回值
}

调用sum函数时,它将返回a和b的和的值:

int x = 10, y = 20;
int result = sum(x, y);
printf("%d\n", result); // 打印输出30
递归函数

递归函数是一个调用自身的函数,可以使用递归来解决某些问题。例如,以下是一个递归函数,用于计算阶乘:

int factorial(int n) {
  if(n == 0) {
    return 1;
  } else {
    return n * factorial(n-1);//递归调用
  }
}

此函数接受一个整数n作为参数,并使用递归来计算n的阶乘。

int n = 5;
int result = factorial(n);
printf("%d\n", result); // 输出 120
函数指针

C语言允许您声明和使用函数指针,即指向函数的指针。函数指针与其他类型的指针有所不同,因为它指向的是一个函数,而不是一个数据存储位置。

以下是声明一个函数指针的例子:

int (*sumPtr)(int, int);

在此示例中,sumPtr是一个指向函数的指针,该函数接受两个整数参数并返回一个整数。

该函数指针可以用于存储指向sum函数的地址:

sumPtr = sum;//将函数地址赋值给函数指针

我们可以使用函数指针调用sum函数:

int result = (*sumPtr)(10, 20);//使用函数指针调用函数

其中,*sumPtr表示对函数指针进行间接引用,即获取指针指向的函数的地址,进而调用该函数。

总结

函数是C语言中基本的构建块之一,C程序员通过定义和调用函数来管理和重用代码。函数有些许难度需要理解,但是运用好函数,可以为你的代码增加可读性和可维护性。