C++函数模块

634 阅读3分钟

一、函数基本知识

使用函数:

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()的副本,而不是原来的数据。