当前位置:   article > 正文

C语言函数_c中fac

c中fac

函数是什么

函数在数学中是发生在集合之间的一种对应关系,在c语言中是一个方法,用于完成某项特定的任务,而且相比于其他代码,有相对的独立性。

函数的分类

在c语言中函数分为库函数和自定义函数

  • 库函数

库函数是c语言本身就有的,会被我们经常使用的,如讲信息打印在屏幕上的printf()和字符串的拷贝strcpy(),这些库函数是为了支持可移植性和提高程序的效率,方便程序员进行软件开发。c语言常见的库函数有IO函数、字符串操作函数、字符操作函数等。需要注意的是使用库函数需要包含对应的#include 头文件。

  • 自定义函数

相比于库函数,自定义函数更加重要,毕竟库函数并不能完成所有的事情。自定义函数和库函数一样有返回类型,函数名和函数参数。和库函数不一样的是这些都是由我们自己来设计的。

  1. 返回类型 函数名(函数参数)
  2. {
  3. 语句块
  4. }

例如做一个返回两个整数中的最大值,或是交换两数据的内容

  1. int get_max(int x, int y)
  2. {
  3. if (a > b)
  4. return a;
  5. else
  6. return b;
  7. }
  8. void swap(int* pa, int* pb)
  9. {
  10. int temp;
  11. temp = *pa;
  12. *pa = *pb;
  13. *pb = temp;
  14. }

函数可以没有参数,也可以不用返回值 

在函数的调用中,实参会创建一个副本(形参),函数中的运算都是形参在进行,因此如果要修改实参的数据,需要传实参的地址。

实参指的是真实传给函数的参数,可以是常量、变量、表达式、函数等,他们需要有确定的值。

形参指的是函数括号后的变量,形式参数只有在函数被调用的过程中才会被分配内存,在调用完之后就会销毁。


因为有形参和实参就有函数的传值调用和传值调用

  • 传值调用

形参和实参分别有不同的地址,形参作为实参的副本进行运算,对形参的改变不会影响实参

  • 传址调用

将外部变量的地址传递给函数,让函数和外部变量创立联系,让函数可以对外部变量进行改变


函数的嵌套调用

函数内部可以调用其他函数

  1. void print()
  2. {
  3. printf("hello world\n");
  4. }
  5. void line(int n)
  6. {
  7. for (int i = 0; i < n; i++)
  8. {
  9. print();
  10. }
  11. }

这样运行line还是就可以打印出n行的hello world

函数可以嵌套调用,但是函数的定义不能嵌套


函数声明和定义

  • 函数声明

函数声明是告诉编译器有这样一个函数,它的返回值类型和参数类型,要在使用前就声明

  • 函数定义

函数定义是函数的具体实现过程

因此函数可以单独声明在头文件中,然后在.c文件中写函数的定义


函数递归

函数的递归就是函数在内部自己调用自己,递归通常是把一个大问题转化为与它类似的数个小问题,可以大大减少打码量

  • 递归的条件

有终止条件且函数在递归时越来越接近终止条件

例如使用递归求n的阶乘和第n的斐波那契数

  1. int fac(int n)
  2. {
  3. if (n == 1)
  4. return 1;
  5. else return n * fac(n - 1);
  6. }
  7. int fib(int n)
  8. {
  9. if (n <= 2)
  10. return 1;
  11. else
  12. return fib(n - 1) + fib(n - 2);
  13. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/850111
推荐阅读
相关标签
  

闽ICP备14008679号