C语言编程中函数的基本学习教程

2020-01-06 14:02:38于丽
易采站长站为您分析C语言编程中函数的基本学习教程,其中着重讲到了传值调用与参数,需要的朋友可以参考下  

C 语言中的函数等价于 Fortran 语言中的子程序或函数,也等价于 Pascal 语言中的过程或函数。函数为计算的封装提供了一种简便的方法,此后使用函数时不需要考虑它是如何实现的。使用设计正确的函数,程序员无需考虑功能是如何实现的,而只需知道它具有哪些功能就够了。在 C 语言中可以简单、方便、高效地使用函数。我们经常会看到在定义后仅调用了一次的短函数,这样做可以使代码段更清晰易读。

到目前为止,我们所使用的函数(如 printf、getchar 和 putchar 等)都是函数库中提供的函数。现在,让我们自己动手来编写一些函数。C 语言没有像 Fortran 语言一样提供类似于**的求幂运算符,我们现在通过编写一个求幂的函数 power(m, n)来说明函数定义的方法。power(m, n)函数用于计算整数 m 的 n 次幂,其中 n 是正整数。对函数调用 power(2,5)来说,其结果值为 32。该函数并非一个实用的求幂函数,它只能处理较小的整数的正整数次幂,但这对于说明问题已足够了。(标准库中提供了一个计算 xy 的函数 pow(x, y)。)

下面是函数 power(m, n)的定义及调用它的主程序,这样我们可以看到一个完整的程序结构。


#include <stdio.h>
int power(int m, int n);

/* test power function */
main()
{
 int i;
 for (i = 0; i < 10; ++i)
 printf("%d %d %dn", i, power(2,i), power(-3,i));
 return 0;
}

/* power: raise base to n-th power; n >= 0 */
int power(int base, int n)
{
 int i, p;
 p = 1;
 for (i = 1; i <= n; ++i)
 p = p * base;
 return p;
}

函数定义的一般形式为:


返回值类型 函数名(0 个或多个参数声明)
{
 声明部分
 语句序列
}

函数定义可以以任意次序出现在一个源文件或多个源文件中,但同一函数不能分割存放在多个文件中。如果源程序分散在多个文件中,那么,在编译和加载时,就需要做更多的工作,但这是操作系统的原因,并不是语言的属性决定的。我们暂且假定将 main 和 power 这两个函数放在同一文件中,这样前面所学的有关运行 C 语言程序的知识仍然有效。

main 函数在下列语句中调用了两次 power 函数:printf("%d %d %dn", i, power(2, i), power(-i, 3)); 每次调用时,main 函数向 power 函数传递两个参数;在调用执行完成时,power 函数向 main 函数返回一个格式化的整数并打印。在表达式中,power(2, i)同 2 和 i 一样都是整数