C语言 函数

C语言 函数

函数是一组语句,它接受输入,进行一些操作,并产生结果。一个函数的操作只有在它被调用时才发生。我们可以调用函数,而不是为不同的输入反复编写相同的代码。函数接受参数,这些参数是数据。一个函数执行某种动作,它对重复使用代码很重要。在一个函数中,有一些用{}括起来的编程语句。

示例:

int sum(int a, int b);

C - 职能

函数声明

函数声明告诉编译器一个函数需要多少个参数,它返回什么类型的参数,以及它需要什么类型的数据。函数声明不需要包括参数名称,但定义必须包括。

语法:

return_type name_of_the_function (parameters); 

两个数字之和的函数声明如下所示

int sum(int var1, int var2);

在声明函数时,参数名称不是强制性的。我们也可以不使用数据变量的名称来声明上述函数。

int sum(int, int);

C - 职能

函数定义

一个函数定义由函数头和函数体组成。

return_type function_name (parameters) 
{
    //body of the function
}
  • Return_type。函数总是以函数的返回类型开始。但如果没有返回值,则使用void关键字作为该函数的返回类型。
  • Function_Name:函数的名称,应该是唯一的。
  • 参数。在函数调用过程中传递的值。

函数调用

调用一个函数时,参数与函数名一起传递。在下面的例子中,第一个和函数被调用,10,30被传递给和函数。调用函数后,a和b的总和被返回,控制权也被返回到程序的主函数。

C - 职能

函数的工作

// C program to show function
// call and definition
#include <stdio.h>
 
// Function that takes two parameters
// a and b as inputs and returns
// their sum
int sum(int a, int b)
{
  return a + b;
}
 
// Driver code
int main()
{
  // Calling sum function and
  // storing its value in add variable
  int add = sum(10, 30);
   
  printf("Sum is: %d", add);
  return 0;
}

输出

Sum is: 40

函数类型

C - 职能

C语言中的函数类型

1.用户定义的功能

由程序员创建的函数被称为用户定义的函数或 “定制的函数”。用户定义的函数可以根据程序员的需要进行改进和修改。每当我们写一个特定情况的函数,并且没有在任何头文件中定义,我们就需要根据语法声明和定义自己的函数。

用户定义函数的优点

  • 可改变的功能可以根据需要进行修改。
  • 这些函数的代码可以在其他程序中重复使用。
  • 这些功能很容易理解、调试和维护。

示例:

// C program to show
// user-defined functions
#include <stdio.h>
 
int sum(int a, int b)
{
  return a + b;
}
 
// Driver code
int main()
{
  int a = 30, b = 40;
  
  // function call
  int res = sum(a, b);
 
  printf("Sum is: %d", res);
  return 0;
}

输出

Sum is: 70

2.库函数

一个库函数也被称为 “内置函数”。有一个已经存在的编译器包包含了这些函数,每个函数都有特定的含义,并被包含在包中。内置函数的优点是不需要定义就可以直接使用,而用户定义的函数在使用前必须进行声明和定义。

比如说。

pow(), sqrt(), strcmp(), strcpy() etc.

C库函数的优势

  • C库函数易于使用,并为更好的性能进行了优化。
  • C库函数节省了大量的时间,即函数开发时间。
  • C库函数很方便,因为它们总是在工作。

示例:

// C program to implement
// the above approach
#include <math.h>
#include <stdio.h>
 
// Driver code
int main()
{
  double Number;
  Number = 49;
 
  // Computing the square root with
  // the help of predefined C
  // library function
  double squareRoot = sqrt(Number);
   
  printf("The Square root of %.2lf = %.2lf",
          Number, squareRoot);
  return 0;
}

输出

The Square root of 49.00 = 7.00

向函数传递参数

当函数被调用时,被传递的值被称为实际参数。在下面的程序中,10和30被称为实际参数。

正规的参数 是函数声明中提到的变量和数据类型。在下面的程序中,a和b被称为形式参数。

C - 职能

1.传值: 这种方法中的参数传递将实际参数的值复制到函数的形式参数中。因此,函数内部的任何改变都不会反映在调用者的参数中。

下面是显示逐值传递的C程序。

// C program to show use
// of call by value
#include <stdio.h>
 
void swap(int var1, int var2)
{
  int temp = var1;
  var1 = var2;
  var2 = temp;
}
 
// Driver code
int main()
{
  int var1 = 3, var2 = 2;
  printf("Before swap Value of var1 and var2 is: %d, %d\n",
          var1, var2);
  swap(var1, var2);
  printf("After swap Value of var1 and var2 is: %d, %d",
          var1, var2);
  return 0;
}

输出

Before swap Value of var1 and var2 is: 3, 2
After swap Value of var1 and var2 is: 3, 2

2.传引用: 调用者的实际参数和函数的实际参数指的是相同的位置,所以在函数内部的任何改变都会反映在调用者的实际参数中。

下面是显示逐一参考的C程序。

// C program to show use of
// call by Reference
#include <stdio.h>
 
void swap(int *var1, int *var2)
{
  int temp = *var1;
  *var1 = *var2;
  *var2 = temp;
}
 
// Driver code
int main()
{
  int var1 = 3, var2 = 2;
  printf("Before swap Value of var1 and var2 is: %d, %d\n",
          var1, var2);
  swap(&var1, &var2);
  printf("After swap Value of var1 and var2 is: %d, %d",
          var1, var2);
  return 0;
}

输出

Before swap Value of var1 and var2 is: 3, 2
After swap Value of var1 and var2 is: 2, 3

函数参数和返回值

在C语言编程中,函数可以在有参数或无参数的情况下被调用,并可能返回值。它们可能会也可能不会向调用函数返回值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程