一、函数基本知识
使用函数:
1)提供函数定义;
2)提供函数原型
3)调用函数。
#include<iostream>
using namespace std;
void simple(); //提供函数原型
int main()
{
cout << "main() will call the simple() function:\n";
simple(); //调用函数
return 0;
}
void simple() //定义函数
{
cout << "I'm but a simple funtion.\n";
}
2.定义函数 可将函数分成两类:没有返回值的函数和有返回值的函数。没有返回值的函数称为void 函数,通用格式如下:
void functionName(prarmeterList)
{ //prarmeterList指定了传递给函数的参数类型和数量
statement(s);
return;
}
有返回值的函数将生成一个值,并将它返回给调用函数。其通用格式如下:
typeName functionName(prarmeterList)
{
statements
return values;
}
对于有返回值的函数,必须使用返回语句,以便将值返回给调用函数。值本身可以是常量、变量,也可以是表达式,知识结果的类型必须为typeName类型或可以被转换为tepyName.
返回类型:不能是数组,但可以是其他任何类型--整数、浮点数、指针、甚至可以是结构和对象。
3.函数原型和函数调用
#include<iostream>
void cheers(int);
double cube(double x);
int main()
{
using namespace std;
cheers(5);
cout << "Give me a number: ";
double side;
cin >> side;
double volume = cube(side);
cout << "A " << side << "-foot cube has a volum of ";
cout << volume << " cubic feet.\n";
cheers(cube(2));
return 0;
}
void cheers(int n)
{
using namespace std;
for (int i = 0; i < n; i++)
cout << "Cheers! ";
cout << endl;
}
double cube(double x)
{
return x*x*x;
}
为什么需要原型? 原型描述了函数到编译器的接口,也就是说,它将函数返回值的类型(如果有的话)以及参数的类型和数量告诉编译器。
原型的语法:函数原型是一条语句,因此必须以分号结束。获得原型最简单的方法是,复制函数定义中的函数头,并添加分号。
原型功能:1.编译器正确处理函数返回值;2.编译器检查使用的参数数目是否正确。3.编译器检查使用的参数类型是否正确。如果不正确,则转换为正确的类型(如果可能的话)。
4.函数参数和按值传递
C++通常按值传递参数,这意味着将数值参数传递给函数,而后者将其赋值给一个新的变量。
C++标准使用参数来表示实参,使用参量来表示形参,因此参数传递将参数赋给参量。
在函数中声明变量是该函数私有的,在函数被调用时,计算机将为这些变量分配内存;函数结束时,计算机将释放这些变量使用的内存。称为局部变量
形参与其他局部变量的主要区别是:形参从调用的函数那里获得自己的值,而其他变量是从函数中获得自己的值。
double volume=cebu(side);
其中,side是一个变量,在前面的程序运行过程中,其值为5.cube()的函数头如下: double cube(double x); 被调用时,该函数将创建一个新的名为x的double变量,并将其初始化为5。这样,cube()执行的操作将不会影响main()中的数据,因为cube()使用的是side()的副本,而不是原来的数据。