C++函数的定义与使用
main就是一个函数,它是C++程序的主函数。一个C++程序可以由一个主函数和若干子函数组成。主函数是程序执行的开始点。由主函数调用子函数,子函数还可以再调用其它子函数。
调用其它函数的函数称为主调函数。被其他函数调用的函数称为被调函数。一个函数很可能既调用别的函数又被其它函数调用。
1函数的定义
1.1函数定义的语法形式
类型说明符 函数名(含类型说明的形式参数表)
{
语句序列
}
1.2形式参数
类型标识符1 形参名1,类型标识符2 形参名2,···,类型标识符n 形参名n
形参的作用是实现主调函数与被调函数之间的联系。通常将函数所处理的数据、影响函数功能的因素或者函数的处理结果作为形参。
如果一个函数的形参表为空,则表示它没有任何形参。main函数可以没有形参,也可以有形参,其形参也称命令行参数,由操作系统在启动程序时初始化。
函数在没有被调用时是静止的,此时的形参只是一个符号,它标志着在形参出现的位置应该有一个什么类型的数据。
函数在被调用时才执行,也就是在被调用时才由主调函数将实际参数赋予形参。
1.3函数的返回值和返回值类型
函数可以有一个返回值,函数的返回值是需要返回给主调函数的处理结果。类型说明符规定了函数返回值的类型,函数的返回值由return语句给出,格式如下:
return 表达式;
除了指定函数的返回值外,return语句还有一个作用,就是结束当前函数的执行。
一个函数也可以不讲任何值返回给主调函数,这时它的类型标识符为void,可以不写return语句,但也可以写一个不带表达式的return语句,用于结束当前函数的调用,格式如下:
return;
2.函数的调用
2.1函数的调用形式
变量在使用之前需要首先声明,类似的,函数在调用之前也需要声明。函数的定义就属于函数的声明,因此,在定义了一个函数之后,可以直接调用这个函数。但如果希望在定义一个函数之前调用它,则需要在调用函数之前添加该函数的函数原型声明。函数原型声明的形式如下:
类型说明符 函数名(含类型说明的形参表);
与变量的声明和定义类似,声明一个函数只是将函数的有关信息告诉编译器,此时并不产生任何代码;定义一个函数是除了同样要给出函数的有关信息外,主要是要写出函数的代码。
声明了函数原型之后,便可以按如下形式调用子函数:
函数名(实参列表);
实参列表应该给出与函数原型形参个数相同、类型相符的实参,每个实参都是一个表达式。函数调用可以作为一条语句,这时函数可以没有返回值。函数调用也可以出现在表达式中,这时就必须有一个明确的返回值。
例1 编写一个求x的n次方的函数
#include<iostream>
using namespace std;
double power(double x,int n)
{
double val=1.0;
while(n--)
val*=x;
return val;
}
int main()
{
cout<<"5 to the power 2 is"<<power(5,2)<<endl;
return 0;
}
例2 输入一个8位二进制数,将其转换为十进制数输出
#include<iostream>
using namespace std;
double power(double x,int n);
int main(){
int value=0;
cout<<"Enter an 8 bit binary number: ";
for(int i=7;i>=0;i--)
{
char ch;
cin>>ch;
if(ch=='1')
value+=static_cast<int>(power(2,i));
}
cout<<"Decimal value is"<<value<<endl;
return 0;
}
double power(double x,int n)
{
double val=1.0;
while(