函数是C程序设计的核心,也是C程序设计的哲学。通过前几课的学习,你已经了解了C语言的 库函数是由编译器提供的完整函数。本课将介绍用户自定义函数,顾名思义,这是由你一一程序员定义的函数。本课将介绍以下内容:函数是C程序设计的核心,也是C程序设计的哲学。通过前几课的学习,你已经了解了C语言的库函数是由编译器提供的完整函数。本课将介绍用户自定义函数,顾名思义,这是由你一一程序员定义的函数。本课将介绍以下内容:
- 什么是函数,函数由哪几部分组成
- 用函数进行结构化程序设计的优点
- 如何创建函数
- 如何在函数中声明局部变量
- 如何从函数将值返回程序
- 如何传递参数给函数
#include <stdio.h>
long cube(long x);
long input, answer;
int main()
{
printf("Enter an integer value: ");
scanf("%ld", &input);
answer = cube(input);
printf("\nThe cube of %ld is %ld.\n", input, answer);
return 0;
}
long cube(long x)
{
long x_cubed;
x_cubed = x * x * x;
return x_cubed;
}
函数的工作原理
函数和结构化程序设计
递归
递归(recursion)指的是一个函数中直接或间接地调用自己。如果一个函数调用另一个函数,而后者又调用前者,将发生间接递归(indirect recursion)。
#include <stdio.h>
unsigned int f, x;
unsigned int factorial(unsigned int a);
int main(void)
{
puts("Enter an integer value between 1 and 8: ");
scanf("%d", &x);
if(x >8 || x < 1)
{
printf("Only values from 1 to 8 are acceptable!");
}
else
{
f = factorial(x);
printf("%u factorial equals %u\n", x, f);
}
return 0;
}
unsigned int factorial(unsigned int a)
{
if (a == 1)
{
return 1;
}
else
{
a *= factorial(a-1);
return a;
}
}