函数的定义
在之前的程序示例中,为了使示例程序更加简洁,我们有时会将所有的执行代码都放在main函数的函数体当中,这样做的好处在于,对于一个简单的程序来说,我们不需要去分析程序的执行顺序,因为,程序的执行过程是显而易见的。但是,一个较大的程序不可能完全由一个人从头至尾的完成,更不可能将所有的内容都放在main函数当中,这样既不利于调试程序,也不利于程序的阅读,对于相类似的程序功能,我们也无法对其进行重复利用。
为了便于规划、组织、编写与调试,一般的做法是把一个大的程序按照功能划分为多个函数,每一个函数实现一部分特定的功能。值得注意的是,无论将一个程序划分为多少个函数,main函数只能有一个,程序总是从main函数开始执行的。在程序运行过程中,由main函数调用其它函数,其他函数也可以互相调用。程序中的各项操作基本上都是由函数来实现的,因此,函数是C++语言中最为重要的部分。
“函数”这个名词是由英语function翻译过来的,function的原意是指“功能”,因此,一个函数就是一个功能,main函数则是主功能,相当于总调度,调动各函数依次实现各项功能。
函数由函数名以及一组操作数类型唯一地表示。函数的操作数,即是形参,在一对圆括号中声明,形参与形参之间以逗号分隔。函数执行的运算在一个称为函数体的块语句中定义。每一个函数都有一个相关联的返回类型。
考虑下面的例子,这个函数用来求出两个int整数的最大公约数:
【例6-1】求出两个整数的最大公约数。
/*求出两个整数的最大公约数*/
int gcd(int v1,int v2)
{
while (v2){ //当操作数v2不为0
int temp=v2;
v2=v1%v2; //v2置为v1除v2取余
v1=temp; //v1置为v2
}
return v1; //返回v1
}
这里定义了一个名为gcd的函数,该函数返回一个int类型的值,并带有两个int类型的形参。调用gcd函数时,必须提供两个int类型的值传递给函数,然后将得到一个int类型的返回值。
【例6-2】输出9*9口诀。
int printout()
{
int i,j,result;
cout<<endl;
for (i=1;i<10;i++){
for(j=1;j<10;j++){
result=i*j;
cout<<i<<”*”<<j<<”=”<<result<<” ";
}
cout<<endl;/*每一行后换行*/
}
return 0;
}
这里定义了一个名为printout的函数,该函数返回一个int类型的值,并带有0个形参。调用gcd函数时,将得到一个int类型的返回值。