赞
踩
函数在数学中是发生在集合之间的一种对应关系,在c语言中是一个方法,用于完成某项特定的任务,而且相比于其他代码,有相对的独立性。
在c语言中函数分为库函数和自定义函数
库函数是c语言本身就有的,会被我们经常使用的,如讲信息打印在屏幕上的printf()和字符串的拷贝strcpy(),这些库函数是为了支持可移植性和提高程序的效率,方便程序员进行软件开发。c语言常见的库函数有IO函数、字符串操作函数、字符操作函数等。需要注意的是使用库函数需要包含对应的#include 头文件。
相比于库函数,自定义函数更加重要,毕竟库函数并不能完成所有的事情。自定义函数和库函数一样有返回类型,函数名和函数参数。和库函数不一样的是这些都是由我们自己来设计的。
- 返回类型 函数名(函数参数)
- {
- 语句块
- }
例如做一个返回两个整数中的最大值,或是交换两数据的内容
- int get_max(int x, int y)
- {
- if (a > b)
- return a;
- else
- return b;
- }
-
- void swap(int* pa, int* pb)
- {
- int temp;
- temp = *pa;
- *pa = *pb;
- *pb = temp;
- }
函数可以没有参数,也可以不用返回值
在函数的调用中,实参会创建一个副本(形参),函数中的运算都是形参在进行,因此如果要修改实参的数据,需要传实参的地址。
实参指的是真实传给函数的参数,可以是常量、变量、表达式、函数等,他们需要有确定的值。
形参指的是函数括号后的变量,形式参数只有在函数被调用的过程中才会被分配内存,在调用完之后就会销毁。
因为有形参和实参就有函数的传值调用和传值调用
形参和实参分别有不同的地址,形参作为实参的副本进行运算,对形参的改变不会影响实参
将外部变量的地址传递给函数,让函数和外部变量创立联系,让函数可以对外部变量进行改变
函数内部可以调用其他函数
- void print()
- {
- printf("hello world\n");
- }
-
- void line(int n)
- {
- for (int i = 0; i < n; i++)
- {
- print();
- }
- }
这样运行line还是就可以打印出n行的hello world
函数可以嵌套调用,但是函数的定义不能嵌套
函数声明是告诉编译器有这样一个函数,它的返回值类型和参数类型,要在使用前就声明
函数定义是函数的具体实现过程
因此函数可以单独声明在头文件中,然后在.c文件中写函数的定义
函数的递归就是函数在内部自己调用自己,递归通常是把一个大问题转化为与它类似的数个小问题,可以大大减少打码量
有终止条件且函数在递归时越来越接近终止条件
例如使用递归求n的阶乘和第n的斐波那契数
- int fac(int n)
- {
- if (n == 1)
- return 1;
- else return n * fac(n - 1);
- }
-
- int fib(int n)
- {
- if (n <= 2)
- return 1;
- else
- return fib(n - 1) + fib(n - 2);
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。